所以,我在Stackoverflow上看到了几个与此有关的问题,但是(a)它们都没有解决我的问题,而且(b)他们没有做我在大多数时候做的事情他们所以,我有一个客户端和服务器Windows窗体应用程序,我只想让它们连接起来。这是服务器的代码:
private void connectButton_Click(object sender, EventArgs e) {
// Attempt to connect
try {
IPAddress ip = IPAddress.Parse(ipBox.Text);
TcpListener listener = new TcpListener(ip, 8000);
listener.Start();
messageBox.Text = "Server started! Waiting for connection...";
messageBox.Refresh();
Socket socket = listener.AcceptSocket();
messageBox.Text += "\nConnection accepted from " + socket.RemoteEndPoint;
}
catch (Exception eg) {
messageBox.Text = Convert.ToString(eg);
}
}
这一切都很有效,我会更多地介绍如何获取IP以及所有这些,但它非常简单,而且我已经知道这是有效的。因此,当您运行此按钮并按下连接按钮时,它基本上会发送它已启动的消息。这是客户端的代码:
private void connectButton_Click(object sender, EventArgs e) {
try {
TcpClient tcp = new TcpClient();
messageBox.Text = "Connecting....";
messageBox.Refresh();
tcp.Connect(ipBox.Text, 8001);
messageBox.Text += "\nConnected!";
messageBox.Refresh();
}
catch (Exception eg) {
messageBox.Text += Convert.ToString(eg);
messageBox.Refresh();
}
}
这发送它正在连接,然后几秒钟后发送error。我听说这是因为服务器没有收听(我已经让程序通过防火墙了),但我在服务器上有这个:Socket socket = listener.AcceptSocket();
。我该如何解决这个问题?