c# - 套接字只接收第一次发送,其他的只是空的
问题描述
伙计们 所以我是编程新手,这是我正在学习的第一门编程语言。
我需要一些网络帮助
我试图建立客户端/服务器连接。起初,我有一个问题是让服务器从多个客户端接收,但我解决了这个问题
现在我遇到了另一个问题,服务器只接收第一条消息,而另一条消息只是空或空。这是为什么?
new Thread(() =>
{
while (true)
{
StartRec();
Thread.Sleep(1000);
}
}).Start();
private static void StartRec()
{
if (ClientsList.Count > 0)
{
//Buffer = new byte[1024];
foreach (Socket C in ClientsList)
{
C.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, new AsyncCallback(EndRec), C);
}
}
}
private static void EndRec(IAsyncResult ar)
{
Socket _C = (Socket)ar.AsyncState;
int rec = _C.EndReceive(ar);
if (rec > 0)
{
Array.Resize(ref Buffer, rec);
string result = Encoding.Default.GetString(Buffer);
BackLog(result, true);
Buffer = new byte[1024];
StartRec();
}
else
{
StartRec();
}
}
解决方案
推荐阅读
- azure - Azure 备份保管库与恢复服务保管库
- robocopy - 在不丢失 robocopy 进度的情况下无法通过管道传输到 findstr
- thymeleaf - thymeaf 布局使用不起作用
- python - 如何使用带有Opencv的python从不同文件夹中读取多个图像
- flutter - 存储应用范围的实例。静态字段与将实例作为参数传递
- javascript - TypeError:无法读取未定义的属性“MyProperty”
- github - 为什么我在 GitHub 中收到页面构建错误?
- audio - 如何使用内部音频渲染器在 MPC-HC 中的 DTS Interactive (5.1 Surround) 中播放音乐?
- r - 在 R 中找到两次之间的中间时间,有时是一夜之间
- python - 从数据框中创建以行值为值的折线图