Socket连接发送数据的一点问题

13 篇文章 0 订阅
1 篇文章 0 订阅

问题

在使用socket实现客户端和服务端通信时,传送数据的一点小bug,即有关“\n”传输的问题。

问题描述

在传输过程中我希望服务端将”\n”这种换行符包裹在发送的信息内一并发送到客户端,这样可以省去在客户端解析数据后再添加这些特殊符号的步骤,但是客户端接收到的”\n”后面的数据被客户端解析程序解析到下一段代码中,如下图结果所示:

代码中StringUtil.SPLIT为分割符

sendMsg = StringUtil.BROADCAST+StringUtil.SPLIT+username+"\n"+StringUtil.SPLIT+msg;

解决

在debug时发现该问题后第一想法便是取消服务器处理“\n”,改用客户端处理输出,服务端只发送基本的数据。操作后问题完美解决,显示效果如下图:

总结

1.设计服务端时应尽可能地减少服务端对不必要数据的计算,以节约服务器资源服务更多的用户。
2.在使用socket连接时,数据的发送与接收尽可能地封装那些最基础的数据,针对转译字符之类的尽可能地避免。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值