【发布时间】:2014-02-01 16:59:57
【问题描述】:
我是 python 新手,正在尝试编写代码。我想创建简单的回显服务器即我输入到客户端的任何内容都将被服务器回显,如果客户端用户在不写任何内容的情况下按下回车,那么服务器将断开连接。这可能很简单,但我在这里缺乏逻辑,有什么帮助吗??
这是我的代码
#!/usr/bin/env python
import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #create socket
s.bind(("0.0.0.0",12345)) #binding port
s.listen(1) #listening for only one client
print "I am listening..."
conn,addr=s.accept() #accept the connection
conn.send("\nEnter your name.\n")
data = conn.recv(2048)
print "Client name is : ",data
conn.send("Now each word you typed will be echo back to you.\n")
while len(data)>0:
data=conn.recv(2048)
if data == '':
sys.exit()
else:
conn.send(data)
【问题讨论】:
-
这对我来说很好,至少在 Python 2.x 中是这样。什么不适合你?
-
我想要的是当客户端按下回车键而不输入任何内容时,服务器应该断开连接。顺便说一句,我使用 ubuntu 作为客户端,使用 windows 8 作为服务器。
-
好吧,那么在收到名称后简单检查是否
data.strip() == ''。我仍然不确定您的问题是什么 - 如果您可以编写write循环,那么额外的if应该不是问题;) -
那是多么愚蠢!谢谢! data.strip() == '' 工作正常。 :)
标签: python sockets echo-server