c# tcp进度条

qq_37622820 2018-01-10 05:33:41
我和同学要做TCP传输数据,当数据量大的时候我写了个进度条,他那边给我传值我来显示,传的是json。
当传输过快的时候我这边会粘包,请问我该怎么做


void ReceiveMsg()
{
try
{
while (true)
{
byte[] msgArr = new byte[1024];
int length = 0;
length = socket.Receive(msgArr);

string strMsg = System.Text.Encoding.UTF8.GetString(msgArr, 0, length);
}
}


这是我接收数据的方法strMsg接收json字符串然后我给他放入类里存起来
...全文
178 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
enaking 2018-01-11
  • 打赏
  • 举报
回复
2楼正解。。。
warcraftmgq 2018-01-11
  • 打赏
  • 举报
回复
去网上找找"粘包"的处理方法,要不就是加分隔符,但是该分隔符不能出现在包里,要么就是用包头+长度的方式。
xian_wwq 2018-01-11
  • 打赏
  • 举报
回复
不管传输快慢,只要是tcp,就得处理“粘包” 常规方法2楼说过了, 报头+ 数据长度 为了提高处理效率, 一般都将数据接收和数据解析分离
  • 打赏
  • 举报
回复
“传值过快”这是一个无厘头的理由。不管传多“快”,都比不上你的程序运行处理速度。最主要地是你不会将连续数据 Stream 正确地分割识别消息。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧