问题所在
我正在尝试使用Python附带的SocketServer,但在握手阶段我遇到了一些问题。只要我使用localhost或127.0.0.1,握手就能正常工作。然而,当我把我的eth0卡的IP,它就是不握手。我测试正式的示例代码在这里发现的
import SocketServer
class MyTCPHandler(SocketServer.BaseRequestHandler):
def handle(self):
self.data = self.request.recv(1024).strip()
print "{} wrote:".format(self.client_address[0])
print self.data
self.request.sendall(self.data.upper())
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
server.serve_forever()终端片段:
manos@box:~$ netcat 10.2.203.26 9999
manos@box:~$
manos@box:~$ netcat localhost 9999
test正如您在代码段中所看到的,尝试连接到10.2.293.26 (我的网卡的IP )是行不通的。一旦我试图连接到localhost,它就能正常工作!
在Wireshark上,在第一个SYN从客户机发送到服务器后(在初始握手阶段),我会得到一个[RST, ACK]。
在telnet上工作得很好
我最初的猜测是,这是一个路由器重置连接。然而,情况并非如此,因为我可以telnet罚款:
第一航站楼:
manos@box:~/tmp/test$ netcat -l 9999
(waiting)
test第2航站楼:
manos@box:~$ netcat 10.2.203.26 9999
testhttps://stackoverflow.com/questions/27125082
复制相似问题