#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