tcplistener如何向连接的client发送字节?下面代码会报异常。。 5C

static void Main(string[] args)
{
List listerList = new List();
for (int i = 0; i < 55; i++)
{
TcpListener listener = new TcpListener( IPAddress.Parse(IP),500+i);
listerList.Add(listener);
}
foreach (var listener in listerList)
{
Console.WriteLine($"{listener.LocalEndpoint.ToString()} start listening...");
listener.Start();
listener.BeginAcceptTcpClient(new AsyncCallback(AcceptEvent), listener);
}
Console.Read();
}

    private static void AcceptEvent(IAsyncResult ar)
    {
        TcpListener listener = (TcpListener)ar.AsyncState;
        while (true)
        {
            byte[] data = new byte[3] {0xaa,0xbb,0xcc};
            string str = listener.LocalEndpoint.ToString()+ ByteToString(data);
            listener.Server.BeginSend(data,0,data.Length,SocketFlags.None, new AsyncCallback(SendSuccess),str);(这里报异常!)
        }
    }
    private static void SendSuccess(IAsyncResult ar)
    {          
        log.Info($"{ar.ToString()}");
    }

2个回答

由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。异常是这个。

如果是要发送数据的话那边的client需要保证是监听的作用,而且需要程序与其建立可靠的连接,不知道楼主这边具体报的什么错误,不过看代码感觉是套接字没有与client端没有建立上连接

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!