Linux 网络编程

你妹的特盗不 2014-03-24 07:03:34
各位大大,
  使用TCP协议,接收大数据包,有没有好的方法.
服务器程序,比如需要接收1w字符以上的内容.

比如一个数据包内容如下.
前面十个字节表示包的一些协议定义.后面2w个内容是这条指令所附带的数据.
服务器在接收这样的数据,怎么做比较靠谱点.
...全文
1017 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldmtn 2014-04-08
  • 打赏
  • 举报
回复
引用 11 楼 xuddk727 的回复:
先在数据头中加入整个包的长度,然后自己分包。
这个靠谱,直接分包发送。。 接收端可以缓存到文件或内存。。
许文君 2014-04-02
  • 打赏
  • 举报
回复
先在数据头中加入整个包的长度,然后自己分包。
danscort2000 2014-04-02
  • 打赏
  • 举报
回复
你想制定什么样的协议? 精简指令,可以参考 ftp ,资源开销小,响应快,但是代价是可能需要组合多个指令才能完成一个复杂的操作 复杂指令, 可以参考 http , 资源开销大,速度慢, 优点是一条指令可以包含很多的分支和参数 混杂指令,可以参考 imap , 上面2者之间的一个平衡产物 总有1个适合你
cchvsgame 2014-04-02
  • 打赏
  • 举报
回复
tcp 是不丢包协议 ,直接 [长度:4byte][内容nByte,以8k为一个包连续发送就行了]
yaozhiyong110 2014-03-26
  • 打赏
  • 举报
回复
引用 4 楼 lfs09 的回复:
[quote=引用 2 楼 yaozhiyong110 的回复:] 比如说你后面那1w数据是拿来写文件的 那可以收到多少就先写多少 如果后面的1w数据是整体性的 不能分开处理 那只有先缓存起来 等所有数据都收齐了再处理...
这个是服务端程序,会同时处理N个多终端发的数据.如果缓存很大的话,那么服务器程序会占用很多内存. [/quote] 那为什么还要设计成一个数据包1w的数据还不能分割处理?
oyljerry 2014-03-26
  • 打赏
  • 举报
回复
两边都定义同样的格式,来发送,解析
你妹的特盗不 2014-03-26
  • 打赏
  • 举报
回复
引用 6 楼 yaozhiyong110 的回复:
[quote=引用 4 楼 lfs09 的回复:] [quote=引用 2 楼 yaozhiyong110 的回复:] 比如说你后面那1w数据是拿来写文件的 那可以收到多少就先写多少 如果后面的1w数据是整体性的 不能分开处理 那只有先缓存起来 等所有数据都收齐了再处理...
这个是服务端程序,会同时处理N个多终端发的数据.如果缓存很大的话,那么服务器程序会占用很多内存. [/quote] 那为什么还要设计成一个数据包1w的数据还不能分割处理?[/quote] 可以改设计,就是在发送数据包的时候,根据大小自动分包,再发送.可以这样,明显感觉效率太低了. 比如一次固定发1500字节,如果1w字节,需要发7次. 还有,这样对于发包必须这样处理,感觉不太好.
你妹的特盗不 2014-03-25
  • 打赏
  • 举报
回复
引用 2 楼 yaozhiyong110 的回复:
比如说你后面那1w数据是拿来写文件的 那可以收到多少就先写多少 如果后面的1w数据是整体性的 不能分开处理 那只有先缓存起来 等所有数据都收齐了再处理...
这个是服务端程序,会同时处理N个多终端发的数据.如果缓存很大的话,那么服务器程序会占用很多内存.
oyljerry 2014-03-25
  • 打赏
  • 举报
回复
接收端根据协议,湖区后面需要接收多少数据,然后复制到数组等,直到数据接收完了,就接下来处理这个数据包
oyljerry 2014-03-25
  • 打赏
  • 举报
回复
引用 4 楼 lfs09 的回复:
[quote=引用 2 楼 yaozhiyong110 的回复:] 比如说你后面那1w数据是拿来写文件的 那可以收到多少就先写多少 如果后面的1w数据是整体性的 不能分开处理 那只有先缓存起来 等所有数据都收齐了再处理...
这个是服务端程序,会同时处理N个多终端发的数据.如果缓存很大的话,那么服务器程序会占用很多内存. [/quote] 那就用内存池等
yaozhiyong110 2014-03-25
  • 打赏
  • 举报
回复
比如说你后面那1w数据是拿来写文件的 那可以收到多少就先写多少 如果后面的1w数据是整体性的 不能分开处理 那只有先缓存起来 等所有数据都收齐了再处理...
yaozhiyong110 2014-03-25
  • 打赏
  • 举报
回复
后面是1w数据和后面是100数据的靠谱的处理方法都一样...

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧