📄 subject_25118.htm
字号:
<p>
序号:25118 发表者:Ryan Liu 发表日期:2002-12-19 10:15:13
<br>主题:一个网络通信的奇怪问题,请高手指教!
<br>内容:如下一个结构体:<BR> struct StatisticData<BR> {<BR> char connNum[10];<BR> char roomID[10];<BR> <BR> char meetingNum[10];<BR> char roomName[10];<BR> char userHostIp[10];<BR> char userIndex[10];<BR> char confPos[10];<BR> char smallImagePos[10];<BR> char videoMode[10]; <BR> char time[10]; <BR> char audioChannel[10];<BR><BR> char videoChannel[10];<BR> char audioReceive[10];<BR> char videoReceive[10];<BR> <BR> char chatID[10];<BR> char errorInfor[10];<BR> <BR> char audioPacketSend[20];<BR> char audioByteSend[20];<BR> char audioPacketRec[20];<BR> char audioByteRec[20];<BR> char audioCapability[20];<BR> char videoPacketSend[20];<BR> char videoByteSend[20];<BR> char videoPacketRec[20];<BR> char videoByteRec[20];<BR> char videoCapability[20]; <BR> char videoRecRate[20];<BR> char videoTransmitRate[20];<BR> char frameRecRate[20];<BR> char frameTransmitRate[20];<BR> char productName[20];<BR> }revData;<BR><BR>在socket通信中server端循环发送如上结构的数据给client端,client循环接受此数据,在win98下发送多少次,就能够正常的接收到多少次正常的数据,但在win2000下测试时,每当循环到第7次以后,从第8次的结构体的数据成员值都为0, 然后,我缩小结构体大小,这样循环发送和及收受的数据正常次数就会增多,原来7次,现在可以10几次。当我把audioChannel[20]下的结构成员都去掉了。在win2000下才能够一切正常,发送多少次,接受也正确多少次。<BR><BR>不明白,发送接受的缓冲区的大小有如此限制吗?那为什么在win98下都一切正常。<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:杨小兵 回复日期:2002-12-19 10:19:39
<br>内容:你可在cs两端写一个不丢包的保证!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Ryan Liu 回复日期:2002-12-19 11:16:21
<br>内容:不丢包的保证,不明白你的意思,如何去写呢?请教了。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:bb 回复日期:2002-12-27 17:33:24
<br>内容:char buf[sizeof(StatisticData)];<BR>int len=sizeof(StatisticData);<BR>int offset;<BR>offset=ret=read(sock, buf, len);<BR>if(ret<0)<BR>{<BR> //error;<BR>}<BR><BR>while(offset<len)<BR>{<BR> ret=read(sock, buf+offset, len-offset);<BR> if(ret<0)<BR> {<BR> //error.<BR> }<BR> offset+=ret;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -