这确实是一个关于TCP通信的新问题。
TCP通信是双向通信吗?
让我给出一个场景:一个程序正在监听一个TCP端口,比如端口25。外部程序使用随机输出端口(例如端口45000 )连接到第一程序的IP地址(端口25)
因为第一个节目只是在听,这是否意味着
如有任何答复,将不胜感激。
发布于 2011-11-09 02:40:58
TCP总是双向的.没有像UDP那样的‘发送和忘记’。第一个程序必须打开服务器套接字。这意味着它在端口25上侦听TCP SYN (标志,表示正在打开连接)。如果您的第二个程序在端口25上连接(来自端口45000),则该连接由4个值标识:主机的IP、主机的端口、远程主机的IP、远程主机的端口。此时,在完成3路握手(SYN、SYN、ACK )时,第一个程序从返回的服务器套接字中获取一个客户端套接字,该套接字连接到您的第二个程序。因此,是的,一旦连接,这是双向沟通,你是脆弱的。
防火墙主要阻止传入的通信量。如果您的第一个程序位于防火墙之后,并且没有正确配置防火墙,防火墙将从第二个程序中删除SYN-数据包。不会有任何联系。如果配置正确,防火墙也可以检查出站连接。
就像我说的。一旦连接到远程程序,远程程序就会获得一个客户端套接字,就像本地程序一样,所有通信都是通过它完成的。
https://stackoverflow.com/questions/8059631
复制相似问题