📄 subject_30571.htm
字号:
<p>
序号:30571 发表者:Ryan Liu 发表日期:2003-02-24 17:07:29
<br>主题:一连串结构体数据流,如何很好的分割开它们!
<br>内容:一个固定长度700字节的长度的结构体,<BR>如果现在我接收到一个数据流,里面有10个700字节相同结构的结构体,如何把它们分割开,并分别存储。<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:74LS373 回复日期:2003-02-24 17:19:42
<br>内容:如果10个700字节相同结构的结构体的数据流是顺序存储的话,可直接把数据流的首地址付给结构体数组的首地址。<BR>YourStrcut s[10];<BR>s=数据流的首地址;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2003-02-24 17:48:18
<br>内容:假设数据流的首地址:YourStrcut *pHead;<BR><BR>YourStrcut s[10];<BR>for(int i=0;i<10;i++)<BR>{<BR> memcpy((void*)(&(s[i])),(void*)(pHead+sizeof(YourStruct)*i),sizeof(YourStruct));<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>
回复者:Ryan Liu 回复日期:2003-02-24 17:57:59
<br>内容:我这10个700字节的结构体数据, 如果是分若干次从socket读出来的,如何将这些数据完整放在以上结构体数组中呢?能给一些例子最好了。多谢指教<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>
回复者:Ryan Liu 回复日期:2003-02-24 18:07:12
<br>内容:而且有可能一次就读完,也可能第一次读了1个多结构,即不到两个结构,下一次再读剩下的数据。(这是由于TCP的无边界的流协议造成的)如何去实现正常分割和存储呢?请高手指点了。谢谢!<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>回复者:tjhe 回复日期:2003-02-24 18:10:55
<br>内容:记录每次读的字节数,以此计算保存数据的开时地址:<BR><BR>YourStrcut *pHead = (YourStrcut*)new unsigned char[10*700];<BR>unsigned char* pCur = (unsigned char*)pHead;<BR>int readbytes=0;<BR>int curread=0;<BR><BR>以pCur作为保存数据的缓冲区首地址,从socket读数据,假设curread=1000;<BR>则readbytes+=curread;<BR>pCur += curread;<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>
回复者:Ryan Liu 回复日期:2003-02-25 10:37:57
<br>内容:memcpy使用后会出问题,不知为何?
<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 回复日期:2003-02-25 11:04:09
<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 + -