当您在套接字上生成file()并在其上使用readlines()时,它将一直持续到到达文件的结尾,在套接字的情况下,它是从另一端关闭的。在
在这种情况下使用makefile()对我来说毫无意义,尤其是因为您在每个命令之后创建并关闭它。只需在两端使用send()和recv()。在
您可能还需要某种实际的“协议”,以便服务器告诉客户机“这里有一个响应”和“这是响应的结束”,以便客户机知道。否则,很难知道何时停止等待更多的响应。:)
更新一个有效的示例:
在服务器.py公司名称:import sys, os, socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 50500))
print("Server started")
s.listen(1)
while True:
print "Accepting"
conn, addr = s.accept()
print 'New connection from ', addr
while True:
try:
rc = conn.recv(1024)
print "Command", rc
if not rc.strip():
continue
if rc.strip() == 'END':
print "Close"
conn.send("**END**")
conn.close()
break
else:
conn.send("This is the result of command %s\n" % rc)
except Exception:
conn.close()
sys.exit()
在客户端.py在
^{pr2}$