Python套接字客户端请求回显

时间:2013-01-30 15:42:50

标签: python

我正在使用Python的select模块构建的简单脚本测试与套接字服务器的通信。它工作正常 - 我从服务器得到响应 - 除了我发送的任何请求似乎都在响应的第一行回显(参见下面的命令行示例)。服务器提供商说这不是他回应请求 - 发送请求时我没有做什么? (在某个地方冲洗一些缓冲区?)


select_client.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
>>> 

1 个答案:

答案 0 :(得分:0)

这似乎很正常。这是一种确认,你发送的字符串是可以的(即使你被告知没有回声)。在您的情况下,我建议您删除data变量的第一行。