【发布时间】:2014-04-24 20:44:46
【问题描述】:
我想建立一个系统,我有一个 python 客户端和服务器连续发送/接收数据。我发现的所有代码示例都显示了如何将单个消息发送到套接字,但没有显示如何连续设置发送/接收数据。
现在我的代码是:
client.py
import socket
import time
while True:
try:
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("192.168.0.250", 10220))
data = "GET\nSONAR\n\n"
print 'send to server: ' + data
client_socket.send(data)
client_socket.close()
except Exception as msg:
print msg
我希望代码能够每分钟多次发送命令,但现在它似乎并不能始终如一地发送消息,我不知道为什么。为什么控制流不连续?
server.py
import socket
host = '192.168.0.100'
port = 8220
address = (host, port)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((address))
server_socket.listen(5)
while True:
try:
print "Listening for client . . ."
conn, address = server_socket.accept()
print "Connected to client at ", address
#pick a large output buffer size because i dont necessarily know how big the incoming packet is
output = conn.recv(2048);
if output:
print "Message received from client:"
print output
#conn.send("This is a response from the server.")
conn.close()
#print "Test message sent and connection closed."
这在第一次尝试时运行良好,但我不能让服务器自动再次监听下一条消息——它总是挂在“正在监听客户端......”。
有什么想法吗?
谢谢!
【问题讨论】: