首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

TCP网络通信有关问题

2012-04-05 
TCP网络通信问题一般C/S结构TCP服务器程序怎么处理客户端各种各样大小不一的数据包呢?我们知道TCP是面向字

TCP网络通信问题
一般C/S结构TCP服务器程序怎么处理客户端各种各样大小不一的数据包呢?我们知道TCP是面向字节流的,没有消息边界,那么对于服务器程序一次能接受多少数据是完全未知的,那么一般C/S程序Server端是怎么处理并正确解析客户端的各个大小不同的数据包的呢?觉得在包头加上数据包长度也不能很好的处理啊!

高手指点!!

[解决办法]
可以采用结构体(含包头,包体)的形式,在包头定个成员,保存该结构体的有效数据长度。

对方在接收到数据包时,根据这个长度来取数据。
[解决办法]
TCP在传输的时候,唯一麻烦的是在传大数据包时会出现分包的问题,而且接收端不知道服务端发送多少长数据长度。

比如原本send 10k的数据改成send2次,第一次send要发送的长度,这样接收端就知道发送端要发送多少长的数据了,这样的设计解析的开销比较少。
[解决办法]
可以采用包头+消息流(包内容),包头里面可以包含类似的命令字,包长度关键信息。包内容就是你发送给对方的网络消息,发送要循环发送,读取可以先读取定长包头的内容,解析后,循环读取包长度的数据。

热点排行