带着更多 TCP 问题再次回来:(
我已经编码了服务器端侦听器和客户端发送器,但我收到错误:
System.Net.Internals.SocketExceptionFactory.ExtendedSocketException: '无法建立连接,因为目标机器主动 拒绝了。 127.0.0.1:1026'
服务器的代码是用Python编写的,是:
def StartServer(Host, Port, Log):
ServerSocket = sockets.socket(sockets.AF_INET, sockets.SOCK_STREAM)
SererSocket.bind((Host, Port))
ServerSocket.listen(1)
Log.log(f"Listening on {Host}:{Port}")
while True:
ClientSocket, Addr = ServerSocket.accept()
Data = ClientSocket.recv(1024).decode("utf-8")
response = "data recieved"
ClientSocket.send(response.encode("utf-8"))
ClientSocket.close()
服务器的代码是用C#(.net6.0)编写的,是:
public static void SendData(string serverAddress, int port)
{
TcpClient client = new(serverAddress, port);
Console.WriteLine("1");
NetworkStream stream = client.GetStream();
Console.WriteLine("2");
// Send data to server
string message = "Hello from C# client";
byte[] data = Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);
Console.WriteLine("3");
// Receive response from server
data = new byte[256];
int bytes = stream.Read(data, 0, data.Length);
string responseData = Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine($"Received from server: {responseData}");
Console.WriteLine("4");
// Close the connection
stream.Close();
client.Close();
}
我将python服务器绑定到127.0.01:1026(据我所知,该端口可用),并且在使用“127.0.0.1”,1026创建TCP客户端时收到错误。我已经尝试过禁用两端的防火墙没有运气。有谁知道我的问题是什么?
编辑:我在同一互联网连接上的不同计算机上运行服务器和客户端,但打算稍后将客户端切换到不同的连接。
只是我缺乏使用 TCP/IP 的经验。我将客户端和服务器上的绑定从 127.0.0.1:1026 更改为(我的 IP):1026,这成功了。
问题是尝试使用 127.0.0.1 从两台不同的计算机进行连接。
在服务器计算机上的命令中运行
hostname
并使用它从客户端而不是 127.0.0.1 进行连接。