socket server输入重复字符问题

#coding=utf-8

import SocketServer,sys


class MyTCPHandler(SocketServer.BaseRequestHandler):

    def handle(self):

        try:

            while True:

                self.data=self.request.recv(1024)

                if not self.data:

                    print("connection lost")

                    break

                self.request.send(self.data.upper())

                

            pass

        except Exception as e:

            print(self.client_address,"连接断开")

        finally:

            self.request.close()

    def setup(self):

        print("before handle,连接建立:",self.client_address)

    def finish(self):

        print("finish run  after handle")


if __name__=="__main__":

    HOST,PORT = "localhost",9999

    server=SocketServer.TCPServer((HOST,PORT),MyTCPHandler)

    server.serve_forever()


这是个SOCKET SERVER,通过CRT工具TELNET后,输入A,输出AA,为什么输出两个,怎么让它只输出一个。谢谢。

测试了你的代码,没有问题,就是预期的。


你的测试环境是怎样的?

代码是没有问题的,我从CRT TELNET到这个SERVER上,输入一个a,输出aA,变成了两个,我只想要一个A作为输出,不想要那个a。这个问题如何解决。在windows上,执行python 2.7,CRT作为TELNET客户端工具。

代码如何修改才能得到我想要的输出结果?

那个a是windows命令行窗口自己显示的, 这个和服务器没关系。 你打个字就

你命令行里打个字就显示出来。这个是telnet的处理的。 也就是你的问题变成了telnet如何屏蔽 输入的字符了。。。


输入你一定要在结果界面不要看到 可以切换一下:

连上服务器后 ctrl+]

可以输入 telnet的命令了。 比如: send asdfgh 回车

再按一下回车,可以看到窗口只有ASDFGH