C# 客户端 Python 服务器:连接被拒绝
Posted
技术标签:
【中文标题】C# 客户端 Python 服务器:连接被拒绝【英文标题】:C# client Python server : Connection refused 【发布时间】:2012-07-08 21:06:18 【问题描述】:我正在处理 C#(客户端)和 Python(服务器)之间的基本套接字通信,但我不明白客户端出现此错误的原因:
[错误] 致命的未处理异常:System.Net.Sockets.SocketException:连接被拒绝 在 System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00159] 在 /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/System.Net.Sockets /Socket_2_1.cs:1262 在 System.Net.Sockets.TcpClient.Connect (System.Net.IPEndPoint remote_end_point) [0x00000] 在 /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/System.Net.Sockets /TcpClient.cs:284 在 System.Net.Sockets.TcpClient.Connect (System.Net.IPAddress[] ipAddresses, Int32 端口) [0x000b3] 在 /private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/ 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】:你有两个问题。第一个是您绑定到localhost
。如果您希望其他计算机能够连接,您可能希望绑定到0.0.0.0
:
PySocket.bind (('0.0.0.0',9999))
另一个问题是您使用 UDP 服务并尝试使用 TCP 连接。如果你想使用 UDP,你可以使用UdpClient
而不是TcpClient
。如果要使用 TCP,则必须使用 SOCK_STREAM
而不是 SOCK_DGRAM
并使用 listen
、accept
和 recv
而不是 recvfrom
。
【讨论】:
非常感谢,我试试看。以上是关于C# 客户端 Python 服务器:连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
Python socket.error:[Errno 111] 连接被拒绝
Python:如何处理 https 连接被拒绝错误并将日志写入服务器