C#:无法建立连接,因为目标机器主动拒绝。 127.0.0.1:1026

问题描述 投票:0回答:2

带着更多 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客户端时收到错误。我已经尝试过禁用两端的防火墙没有运气。有谁知道我的问题是什么?

编辑:我在同一互联网连接上的不同计算机上运行服务器和客户端,但打算稍后将客户端切换到不同的连接。

python c# tcp
2个回答
0
投票

只是我缺乏使用 TCP/IP 的经验。我将客户端和服务器上的绑定从 127.0.0.1:1026 更改为(我的 IP):1026,这成功了。


0
投票

问题是尝试使用 127.0.0.1 从两台不同的计算机进行连接。

在服务器计算机上的命令中运行

hostname
并使用它从客户端而不是 127.0.0.1 进行连接。

© www.soinside.com 2019 - 2024. All rights reserved.