我最近在Python中做过一些网络编程,并且想确认我认为在客户端和服务器之间发生的流程:
如您所见,在上面的流程中涉及3个插座:
我知道获取前两个套接字(9999和1111)的端口,但不知道如何获得与服务器端客户端通信的“真实”端口。我正在使用的代码片段现在是:
def sock_request(t):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 9999))
print('local sock name: ' + str(s.getsockname()))
print('peer sock name: ' + str(s.getpeername()))
s.send('a' * 1024 * int(t))
s.close()
在服务器上获取与客户端实际通信的“端口”号码的任何帮助都将非常感激。 TIA。
答案 0 :(得分:4)
新套接字位于同一端口。 TCP连接由4条信息标识:源IP和端口,以及目标IP和端口。因此,您的服务器在同一端口(即侦听套接字和接受的套接字)上有两个套接字的事实不是问题。