我编写了一个局域网内的客户端/服务器程序,其中服务器使用Windows系统(VC编程),客户端使用linux系统(C语言编程).服务器每30秒向客户端发送查询信号,来判断客户端是否运行正常,客户端接收到以后立即向服务器反馈;在此同时,服务器根据设置需要,随时要向客户端发送各种指令信号。在程序调试过程中,发现客户端运行一段时间后,接收的服务器的指令或查询信号比较混乱,使得客户端不能按照设计要求运行,不知是什么原因。是不是有这种原因:服务器的查询信号和指令信号在某一时间同时向客户端发送,因为客户端用select函数判断套接口是否有数据进来,判断时间间隔为1秒,也就是在这1秒钟时间里,同时有查询信号和指令信号进入套接口,致使客户端无法正确判断接收到的是查询信号还是指令信号,我的客户端接收思路如下:
fe"O]4t7_k@Rwww.linuxeden.comwhile(1)
U0n
V,xopIB3Gu{
ym0sd0n
FD_ZERO(&rdset);
AtL-smm B3?^Linux伊甸园论坛 FD_SET(sd, &rdset);
Linux伊甸园论坛cg8Ji0C*j-L
tv.tv_sec = 1;
k\(M/P'c-O/l+W
tv.tv_usec = 0;
e hB%u k/F
@'k @ switch(select(FD_SETSIZE, &rdset, NULL, NULL, &tv))
!Lv
T|F
{
tk
:OgshLinux伊甸园论坛 case -1: ...
4^s8Dgg b \ case 0: ...
]*Bt ](v1x}]w5Gl/\
default: ...
q,EQld&@ i }
;si\Uy`.^lq
}
w&k
g#e7I0y用select函数判断套接口是否有数据进来,时间间隔为1秒。
*s"_G/[0@如果不是上面原因,该如何解决此问题。