首页 > 解决方案 > 套接字只接收第一次发送,其他的只是空的

问题描述

伙计们 所以我是编程新手,这是我正在学习的第一门编程语言。

我需要一些网络帮助

我试图建立客户端/服务器连接。起初,我有一个问题是让服务器从多个客户端接收,但我解决了这个问题

现在我遇到了另一个问题,服务器只接收第一条消息,而另一条消息只是空或空。这是为什么?

 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();
        }
    }

标签: c#socketsnetworkingconnection

解决方案


推荐阅读