繁体   English   中英

C# TCP 客户端错误,如果我到达 listener.start

[英]C# TCP Client Error if I reach listener.start

有人能帮助我吗 ? 如果我到达 listener.start 就是错误 但是我没有打开的 tcp 连接。 错误:{“通常每个套接字地址(协议、网络地址或端口)只使用一次”}

Stack Trace = " at System.Net.Sockets.Socket.DoBind (EndPoint endPointSnapshot, SocketAddress socket address) \\r\\n at System.Net.Sockets.Socket.Bind (EndPoint localEP) \\r\\n at System.Net.Sockets .TcpListener .Start (Int32 backlog)\\r\\n 在 System.Net.Sockets.TcpListene ...

那是我的代码

    const int PORT_NO = 3242;
    const string SERVER_IP = "127.0.0.1";

public static void send()
{
    IPAddress localAdd = IPAddress.Parse(SERVER_IP);
    TcpListener listener = new TcpListener(localAdd, PORT_NO);
    try
    {
        StreamReader sr = new StreamReader(Application.StartupPath + Info.MainFile);
        string text = sr.ReadToEnd();
        sr.Close(); 
        //Hier den string rein geben !
        byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(text);
        Console.WriteLine("Listening...");
        listener.Start();
        TcpClient client = listener.AcceptTcpClient();
        NetworkStream nwStream = client.GetStream();
        byte[] buffer = new byte[client.ReceiveBufferSize];
        //int bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize);
        int bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize);
        string dataReceived = Encoding.ASCII.GetString(buffer, 0, bytesRead);
        Console.WriteLine("Received : " + dataReceived);
        Console.WriteLine("Sending back : " + dataReceived);
        //nwStream.Write(buffer, 0, bytesRead);
        nwStream.Write(bytesToSend, 0, bytesToSend.Count());
        //client.Close();
        listener.Stop();
        Console.ReadLine();
    }
    catch(Exception ex)
    {
        //StreamWriter sw = new StreamWriter(Application.StartupPath + Info.Log, true);
        //sw.WriteLine(ex.InnerException);
        //sw.Flush();
        //sw.Close();
        listener.Stop();
    }
}

如果端口已被占用,则可能会发生这种情况。 可能是之前的调试会话没有正确关闭或者监听套接字没有关闭。

你可以跑

netstat -ab

查看当前打开的连接或处于 WAIT 或 LISTENING 状态的连接。

尝试更改端口以查看它是否有效。

暂无
暂无

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

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