我一直在尝试了解套接字是如何工作的,并且我一直在尝试分解我在 this page 找到的一些示例代码对于一个非常简单的客户端套接字程序。由于这是基本示例代码,我认为它没有错误,但是当我尝试编译它时,我收到以下错误消息。
File "client.py", line 4, in client_socket.connect(('localhost', 5000)) File "", line 1, in connect socket.error: [Errno 111] Connection refused
我几乎用谷歌搜索了这个错误的每个部分,遇到类似问题的人似乎通过更改端口号、使用“连接”而不是“绑定(bind)”以及其他一些事情得到了帮助,但它们都不适用于我的情况。非常感谢任何帮助,因为我对网络编程很陌生,对 python 也很陌生。
顺便说一下,如果链接由于某种原因不起作用,这里是代码。
#client example
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 5000))
while 1:
data = client_socket.recv(512)
if ( data == 'q' or data == 'Q'):
client_socket.close()
break;
else:
print "RECIEVED:" , data
data = raw_input ( "SEND( TYPE q or Q to Quit):" )
if (data <> 'Q' and data <> 'q'):
client_socket.send(data)
else:
client_socket.send(data)
client_socket.close()
break;
最佳答案
这是最简单的python套接字示例。
服务器端:
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('localhost', 8089))
serversocket.listen(5) # become a server socket, maximum 5 connections
while True:
connection, address = serversocket.accept()
buf = connection.recv(64)
if len(buf) > 0:
print buf
break
客户端:
import socket
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 8089))
clientsocket.send('hello')
- 首先运行 SocketServer.py,并确保服务器已准备好监听/接收某事
- 然后客户端向服务器发送信息;
- 服务器收到某事后,终止
关于python - 基本 Python 客户端套接字示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7749341/