我正在使用使用 Python 的 select 模块构建的简单脚本测试与套接字服务器的通信。它工作正常 - 我从服务器获得响应 - 除了我发送的任何请求似乎都在响应的第一行中回显(请参见下面的命令行示例)。服务器提供商说这不是他回应请求 - 发送请求时我没有做什么?(在某处冲洗一些缓冲区?)
选择客户端.py
Prompt=">>>"
def loop(chan, bufsize):
while True:
r, w, e = select.select([chan, sys.stdin], [], [])
if chan in r:
data=chan.recv(bufsize)
if len(data)==0:
continue
sys.stdout.write(data)
sys.stdout.write("%s " % Prompt)
sys.stdout.flush()
if sys.stdin in r:
data=sys.stdin.readline()
if data=="\n":
break
chan.send(data)
样品使用
>>> hello
hello <--------- ECHO!
error:no_version_specified
>>> login:1
login:1 <---------- ...!
error:usage:login:1:username?:passwd?
>>> login:1:foo:bar
login:1:foo:bar
>>> error:incorrect_username_or_password
>>>