Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
来源:互联网 发布:linux嵌入式应用开发 编辑:程序博客网 时间:2024/05/05 09:43
http://blog.sina.com.cn/s/blog_4ad7c2540101lep1.html
先说明一下粘包的概念: 发送时是两个单独的包、两次发送,但接收时两个包连在一起被一次接收到。
在以前 WinCE 下 Socket 编程,确实也要处理粘包的问题,没想到在 Android 下也遇到了。首先想从发送端能否避免这样的问题,例如: (1) 调用强制刷数据完成发送的函数;(2) 设置发送超时。
1 先试了调用 flush() 函数,但运行后现象依旧
2 设置发送超时是 Windows 平台的做法,但在 Android 平台下是否有类似的设置呢?
查看 Socket 类的实现代码:java.net.socket socket.class 文件后发现,还是有函数可以完成这样的设置的。请看如下函数和变量的说明:
和
一般情况下,只需要调用如下的代码即可:
不用做任何设置就可以完成与服务器/客户端的通讯,刚开始我也是这样做的。所以,遇到了上面的问题。
看以下较完整的 Socket 初始化与设置过程:
最后说明一点: 无论 Socket 如何设置,接收方是一定要处理粘包的问题的。即在接收时,对接收到的数据进行分析,看是否存在数据不全或粘包的现象。
0 0
- Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
- Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
- Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
- socket数据的接收和发送
- 8、socket数据的接收和发送
- Android socket通过UDP的方式发送,接收数据
- android平台通过socket向C++服务器端发送数据和接收数据的相关问题
- android平台通过socket向C++服务器端发送数据和接收数据的相关问题
- Android之发送与接收JSON数据
- UDP发送与接收数据
- 发送与接收float数据
- 带外数据的接收与发送
- JAVA---udp数据的发送与接收
- 数据的接收与发送(练习)
- android发送/接收json数据
- Android接收/发送jSON数据
- Android接收/发送jSON数据
- android发送/接收json数据
- Qt实时显示系统时间
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
- 拼图游戏~~~
- first集与follow集
- sql一些小查询语句
- Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
- mysql安装
- 30分钟git命令入门到放弃
- HBuilder之真机运行
- java基础之线程--线程概述及创建方法
- 提高Java代码可重用性的三个措施
- TCP/IP、Http、Socket的区别
- orm初识
- Android实现“判断域名是否有效”的功能