问题
我试图使用SocketServer附带Python的,但我在握手阶段的一些问题。只要使用localhost或127.0.0.1,握手就可以正常工作。但是,当我把我的eth0卡的IP,它只是不会握手。我测试的官方示例代码found here:Python的SocketServer的won''t握手
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()
终端片段:
[email protected]:~$ netcat 10.2.203.26 9999
[email protected]:~$
[email protected]:~$ netcat localhost 9999
test
正如您在摘要中看到,尝试连接到10.2.293.26
这是我的网卡不工作的IP。只要我尝试连接到localhost
,它工作正常!
在Wireshark上,从客户端向服务器发送第一个SYN(在初始握手阶段)后,我得到一个[RST, ACK]
。
工作正常,我的第一个猜测是,这是重新连接的路由器。然而事实并非如此,因为我可以telnet
罚款:
端子1:
[email protected]:~/tmp/test$ netcat -l 9999
(waiting)
test
2号航站楼:
[email protected]:~$ netcat 10.2.203.26 9999
test
只是一个快速建议,您是否正确设置了端口转发? – redspidermkv 2014-11-25 11:23:21
@redspidermkv那么'telneting'不会工作,如果这是问题.. – Pithikos 2014-11-25 11:36:53