C#客户端Python服务器:连接被拒绝

时间:2012-07-08 21:06:18

标签: c# python sockets communication

我正在进行C#(客户端)和Python(服务器)之间的基本套接字通信,我不明白为什么我从客户端出现此错误的原因:

[错误]致命的未处理异常:System.Net.Sockets.SocketException:连接被拒绝   在/private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/System.Net.Sockets中的System.Net.Sockets.Socket.Connect(System.Net.EndPoint remoteEP)[0x00159] /Socket_2_1.cs:1262   在/private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/System.Net.Sockets中的System.Net.Sockets.TcpClient.Connect(System.Net.IPEndPoint remote_end_point)[0x00000] /TcpClient.cs:284   在/private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/中的System.Net.Sockets.TcpClient.Connect(System.Net.IPAddress [] ipAddresses,Int32 port)[0x000b3] System.Net.Sockets / TcpClient.cs:355

我的程序非常简短,所以我认为这是一个菜鸟问题,但我只是不明白。我想要的是客户端向服务器发送消息,该消息将在控制台上打印。

这是C#客户端(错误来自:socket.Connect(“localhost”,9999);)

using System;
using System.Net.Sockets;

namespace MyClient
 {
class Client_Socket{
    public void Publish(){
TcpClient socket = new TcpClient();
socket.Connect("localhost",9999);
NetworkStream network = socket.GetStream();
System.IO.StreamWriter streamWriter= new System.IO.StreamWriter(network); 
streamWriter.WriteLine("MESSAGER HARGONIEN");
streamWriter.Flush();   
network.Close();
   }

}
}

和Python服务器:

from socket import *

if __name__ == "__main__":
    while(1):
        PySocket = socket (AF_INET,SOCK_DGRAM)
        PySocket.bind (('localhost',9999))
        Donnee, Client = PySocket.recvfrom (1024)
        print(Donnee)

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

你有两个问题。首先是你绑定到localhost。如果您希望其他计算机能够连接,您可能希望绑定到0.0.0.0

PySocket.bind (('0.0.0.0',9999))

另一个问题是你正在使用UDP并尝试连接TCP。如果要使用UDP,可以使用UdpClient而不是TcpClient。如果您想使用TCP,则必须使用SOCK_STREAM而不是SOCK_DGRAM并使用listenacceptrecv而不是{{3} }}