繁体   English   中英

C#套接字连接错误

[英]C# Socket connection error

我正在使用C#中的套接字,但是出现以下错误:

不允许发送或接收数据的请求,因为未连接套接字,并且(当使用sendto调用在数据报套接字上发送时)未提供地址

这是我正在执行的代码:

    private void HostSubscriberService()
    {
        IPAddress ipV4 = PublisherService.ReturnMachineIP();

        var localEP = new IPEndPoint(ipV4, _port);
        var server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        server.Bind(localEP);

        StartListening(server);
    }

    private void StartListening(Socket server)
    {
        EndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
        while (true)
        {
            var data = new byte[1024];
            int recv = server.ReceiveFrom(data, ref remoteEP);
            string messageSendFromClient = Encoding.ASCII.GetString(data, 0, recv);

            MessageBox.Show(messageSendFromClient);
        }
    }

错误发生在@ int recv = server.ReceiveFrom(data, ref remoteEP);

我只需要侦听新的传入连接,然后打印从新客户端发送的消息。

我需要它在TCP协议上工作,因为某些消息将大于1500字节

谢谢!

您需要先接收.BeginAccept()才能接收。

这是一个带有单一异步套接字服务器示例的链接

ReceiveFrom()适用于UDP,使用Accept()和Receive()适用于TCP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM