可能与nc或telnet影响套接字

问题描述

我有一个概念性问题。

如果我有Java套接字(此套接字通过通道建立TCP连接)

如果我运行nc命令,则nc命令打开一个tcp连接,那么nc会影响我的套接

与telnet相同的问题,telnet是否可能影响我的套接字连接?

解决方法

不正常。操作系统会将这些套接字分开。您不会轻易影响一个插槽与另一个插槽的连接。

如果Java应用程序使用本地端口10001连接到端口443上的HTTPS服务器,则该套接字将专用于这些IP和端口之间的连接。如果从同一台计算机上的netcat连接到443上的同一服务器,它将不会使用相同的本地端口,并且它们将不是同一套接字。

现在,至少在unixland中,打开的套接字只是文件描述符,它们可以在程序之间传递。因此,例如,您的Java应用程序可以产生一个新线程并将打开的套接字移交给该线程。但是,系统上的独立进程无法轻松地从打开的套接字中获取数据。

当然,这些限制只是在软件中强制执行,而不是在物理法则中强制执行,因此“一切皆有可能”。但是操作系统将试图阻止这种事情的发生。