Socket连接发送数据的一点问题
来源:互联网 发布:淘宝专业版全屏轮播 编辑:程序博客网 时间:2024/05/14 04:05
问题
在使用socket实现客户端和服务端通信时,传送数据的一点小bug,即有关“\n”传输的问题。
问题描述
在传输过程中我希望服务端将”\n”这种换行符包裹在发送的信息内一并发送到客户端,这样可以省去在客户端解析数据后再添加这些特殊符号的步骤,但是客户端接收到的”\n”后面的数据被客户端解析程序解析到下一段代码中,如下图结果所示:
代码中StringUtil.SPLIT为分割符
sendMsg = StringUtil.BROADCAST+StringUtil.SPLIT+username+"\n"+StringUtil.SPLIT+msg;
解决
在debug时发现该问题后第一想法便是取消服务器处理“\n”,改用客户端处理输出,服务端只发送基本的数据。操作后问题完美解决,显示效果如下图:
总结
1.设计服务端时应尽可能地减少服务端对不必要数据的计算,以节约服务器资源服务更多的用户。
2.在使用socket连接时,数据的发送与接收尽可能地封装那些最基础的数据,针对转译字符之类的尽可能地避免。
0 0
- Socket连接发送数据的一点问题
- socket 发送数据需要注意的问题
- java socket 长连接发送数据概要
- 使用socket读取服务器发送的数据问题
- Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
- Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
- Android Socket 发送与接收数据问题: 发送后的数据接收到总是粘包
- Android中的socket长连接问题(包括心跳机制、多线程数据发送)
- Socket连接的问题
- 自己写了个连接socket服务的功能,连接成功后向服务发送数据并接收数据
- 关于使用SOCKET发送数据时“目标积极积极拒绝,无法连接”错误的原因分析
- android平台通过socket向C++服务器端发送数据和接收数据的相关问题
- android平台通过socket向C++服务器端发送数据和接收数据的相关问题
- java socket连接以及发送和接收数据
- C++socket客户端select异步连接发送接收数据
- socket数据的接收和发送
- 8、socket数据的接收和发送
- [JAVA]Socket中BufferedReader.readLine()的阻塞特性导致的数据无法多次发送的问题
- Android获取SDCard路径/Android获取存储器挂载点
- 嵌入式学习-驱动开发-lesson4-按键混杂设备驱动
- python入门
- Android中使用surfaceview+MediaPlayer播放视频
- Mongodb 基本命令
- Socket连接发送数据的一点问题
- Build gradle project info的暴力解决方式
- 神经网络基本概念
- ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
- 各大Oj平台介绍
- tengine实现tomcat负载均衡
- 习题一
- 成功在Android上运行node和npm,hooray!!
- AndroidStudio快捷键Search/Replace