谁来回复回复啊,各位好心人,感激不尽
|
|
午夜了, 帮你顶一下吧, 其实我也不会, 只是顶一顶
|
|
GCDAsyncSocket
发送过快的时候有粘包现象 解决方案就是设置包头 |
|
TCP不是客户端发几次数据服务器端就接收几次数据,要以流的眼光来看待这些数据。通常的做法是在包头里面包含数据包的长度,然后接收端就可以根据这个信息读取指定长度的数据之后再将整个数据包提交给上层应用进行处理。
|
|
http://blog.csdn.net/tonny_guan/article/details/8803090这里有个相关的链接地址,你可以进去看看,或许能对你有帮助
|
|
在吗。我用GCDAsyncSocket类实现的TCP连接,我是客户端,怎么在包头中设置数据包长度呢。能不能再指点下,这个问题困惑我快半个月了 |
|
30分 |
所谓的包头,其实就是在实际需要传输的数据之前添加的一些标识。GCDAsyncSocket只是一个数据通道。
包标识(固定长度)包长度(固定长度,包长度=包标识长度+包长度所占长度+包数据长度)包数据(不定长) |
你的意思是在我发送的数据中加上数据长度什么之类的吗?我自己定的协议中有的,我到了那边也是自己按照协议拆开解析的。但是问题是我这边是19个字节一条命令发送的,而且是一个一个发的,但是到了接收的地方,直接就是几百个一起接收,我的界面刷新其实就用了这几百个字节的最后19个字节,所以就一卡一卡的,中间那些过程数据都没办法显示。 |
|
TCP本来就可能存在分包的呀,你程序一次发送的数据不一定会在另一方一次收到的。
|
|
我用这个GCDAsyncUdpSocket类,实现局域网内上传下载文件,只是单纯的点对点(把IP固定死)好做,可是我现在要实现获取对方设备的IP进行通信,怎么获取对方设备的IP
|