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
原创粉丝点击