标题: 关于socket通讯问题!
test67cn
新生入学
Rank: 1
注册用户



UID 80123
精华 0
积分 0(积分有什么用?)
帖子 3
阅读权限 10
注册 2004-4-7
状态 离线
发表于 2007-2-27 12:54  资料  个人空间  短消息  加为好友 
关于socket通讯问题!

我编写了一个局域网内的客户端/服务器程序,其中服务器使用Windows系统(VC编程),客户端使用linux系统(C语言编程).服务器每30秒向客户端发送查询信号,来判断客户端是否运行正常,客户端接收到以后立即向服务器反馈;在此同时,服务器根据设置需要,随时要向客户端发送各种指令信号。在程序调试过程中,发现客户端运行一段时间后,接收的服务器的指令或查询信号比较混乱,使得客户端不能按照设计要求运行,不知是什么原因。是不是有这种原因:服务器的查询信号和指令信号在某一时间同时向客户端发送,因为客户端用select函数判断套接口是否有数据进来,判断时间间隔为1秒,也就是在这1秒钟时间里,同时有查询信号和指令信号进入套接口,致使客户端无法正确判断接收到的是查询信号还是指令信号,我的客户端接收思路如下:
fe"O]4t7_k@ Rwww.linuxeden.comwhile(1)
U0n
V,xo pIB3Gu
{y m0sd0n
  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%uk/F
@'k @
  switch(select(FD_SETSIZE, &rdset, NULL, NULL, &tv))!Lv
T |F

  {
tk:Ogs hLinux伊甸园论坛    case -1: ...
4^s8Dgg        b\    case  0: ...]*B t](v1x}]w5Gl/\
    default: ...
q,EQld&@        i  };s i\Uy`.^l q
}
w&k
g#e7I0y
用select函数判断套接口是否有数据进来,时间间隔为1秒。
*s"_G/[0@如果不是上面原因,该如何解决此问题。

顶部
flag
版主
Rank: 7Rank: 7Rank: 7
版主



UID 19801
精华 1
积分 28(积分有什么用?)
帖子 5581
阅读权限 100
注册 2002-7-19
状态 离线
发表于 2007-2-28 09:58  资料  个人空间  短消息  加为好友 
你说的混乱不能按设计运行是什么意思?根据你的说法我不能明白是现在的设计和要达到的目标有什么出入。





上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。
顶部
chayedan
新生入学
Rank: 1
注册用户



UID 165782
精华 0
积分 0(积分有什么用?)
帖子 11
阅读权限 10
注册 2006-8-28
状态 离线
发表于 2007-3-7 15:19  资料  个人空间  短消息  加为好友 
是啊,举个例子,打个比方更形象的说一下,大家才好理解

顶部
 



当前时区 GMT+8, 现在时间是 2008-5-17 09:39

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.071940 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP