110,539
社区成员
发帖
与我相关
我的任务
分享
var sb = new StringBuilder();
sb.Append(.....你的文本消息....);
sb.AppendLine();
var data = Encoding.UTF8.GetBytes(sb.ToString());
client.BeginSend(data,.....);
这里,假设消息内容以文本方式表示,并且组合在一起,最后一换行回车结束。
然后在服务器端,循环Receive数据时,一旦是换行回车最为buffer的最后两个字节,就可以对收到的消息立刻转为 MemoryStream,并且以循环 StreamReader.ReadLine() 方式读取出一行或者多行文本,每一个文本都是一条消息。
只要是 BeginSend 是一次性发送的整个消息,即使你的客户端并发10个线程去向对方同一个端口发送学生信息,对方也不会接收错误。