思路 1. 通信 为了同步双方的棋盘,每当一方在棋盘上落子之后,都需要发送给对方一个msg消息,让对方知道落子位置。msg结构体如下: /* 用于发给对方的信息 */typedef struct tag_msg{ int msg_type; /* 悔棋? */ int msg_color; int ...
分类:
系统相关 时间:
2014-09-04 22:09:30
阅读次数:
375
具体生成动态库的操作及使用该动态库的操作请参见上篇博文。以下仅仅列出改进版本的代码。 代码 my_socket.h #ifndef __MY_SOCKET_H__#define __MY_SOCKET_H__#include #include #include #include #include #...
分类:
系统相关 时间:
2014-09-04 01:24:37
阅读次数:
331
将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站,都有类似的问题。因此使用Linuxteaming或bond来绑定多个网卡作为一个逻辑..
分类:
系统相关 时间:
2014-09-03 18:27:47
阅读次数:
501
引言 每次使用socket通信,都会有很对相似的操作。本文,会对TCP与UDP通信做一简单封装,并生成动态库。 代码 my_socket.h #ifndef __MY_SOCKET_H__#define __MY_SOCKET_H__#include #include #include #inclu...
分类:
系统相关 时间:
2014-09-01 22:23:03
阅读次数:
344
在Linux C网络编程中,一共有两种方法来关闭一个已经连接好的网络通信,它们就是close函数和shutdown函数,它们的函数原型分别为:
1
#include
2
int close(int
sockfd)
3
//返回:0——成功, 1——失败
4
...
分类:
其他好文 时间:
2014-09-01 21:13:13
阅读次数:
228
思路 主线程负责发送消息,另一线程负责接收消息。服务端和客户端均是如此。 注意 当A方close掉用于通信的socket端口后,该端口是不会立即关闭的。因为此时可能B方的信息还没send完。因此,此时A方的recv仍旧处于阻塞状态,会最后再等待收一次信息。此时,当B方send一个信息给A后,A方re...
分类:
系统相关 时间:
2014-08-31 17:12:01
阅读次数:
283
需求 当客户端连接上服务器后,服务器会将相应文件传输给客户端,实现文件下载。 思路 服务器端,主进程负责listen。循环内,主进程每从任务请求队列中accept出一个请求,就fork出孙子完成文件传输。注意:如果只是fork出儿子,那么主进程就得wait儿子,这样的话,只有当给一个客户端传完文件后...
分类:
系统相关 时间:
2014-08-31 13:11:41
阅读次数:
240
配置IP地址:通过命令行(ifconfig,ip):即时生效,重启失效通过配置文件:重启生效,或者通过/etc/init.d/networkrestart重读配置文件ifconfig:配置网络接口ifconfig显示当前激活的所有网卡信息[root@unp~]#ifconfigeth0Linkencap:EthernetHWaddr00:50:56:9F:22:36inetaddr:19..
分类:
系统相关 时间:
2014-08-30 11:23:59
阅读次数:
387
引言 本文实现的功能类似于我之前所写的一篇博文(Linux之select系统调用_2),区别在于进程之间的通信方式有所不同。之前的文章中,我所使用的是管道,而本文我将会使用socket接口。 需求 客户端发送消息给服务器,服务器收到消息后,会转发该消息给所有客户端。 思路 1. server端维护一...
分类:
系统相关 时间:
2014-08-30 01:15:08
阅读次数:
266
TCP与UDP通信流程 TCP通信的基本步骤如下: 服务端:socket---bind---listen---while(1){---accept---recv---send---close---}------close 客户端:socket-----------------------------...
分类:
系统相关 时间:
2014-08-29 22:30:18
阅读次数:
362