[英]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.