c# TCP编程 传输消息问题

weeksun23 2011-11-11 01:41:11
我写了一个程序,服务器端每100ms就向客户端发送一个命令消息字符串 由于发送时间间隔短,客户端有时会受到两个命令合成的字符串,造成错误,如命令消息格式为"xxx,xxx",有时会收到"xxx,xxxxxx,xxx".请问应该怎么解决这个问题呢?关键代码如下
服务器端
private void SendToClient(User user, string message)
{
try
{
user.sw.WriteLine(message);
user.sw.Flush();
AddItem(string.Format("向{0}发送{1}", user.userName, message));
}
catch
{
AddItem(string.Format("向{0}发送信息失败", user.userName));
}
}
客户端

NetworkStream netStream = client.GetStream();
sr = new StreamReader(netStream, System.Text.Encoding.UTF8);
try
{
receiveString = sr.ReadLine();
}
catch
{
service.AddItemToListBox("接收数据失败");
receiveString = null;
}
...全文
98 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyue4 2011-11-11
  • 打赏
  • 举报
回复
很显然是发送了两遍啊
飞天凤凰601 2011-11-11
  • 打赏
  • 举报
回复
你最好在每次命令完了加一个结束标志,然后用循环来拆解这个字串,看有没有连在一起的情况,然后再处理

我的程序就按这个方法处理的
ckccy 2011-11-11
  • 打赏
  • 举报
回复
我要下载我要下载
csdn_aspnet 2011-11-11
  • 打赏
  • 举报
回复

110,537

社区成员

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

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

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