让我澄清一下这个问题。
看图
在所有四个套接字同时运行的情况下,这样的连接是否可行!
ServerSocket 是来自 java.net API 的 ServerSocket 普通 Socket 是来自 java.net Api 的 Socket
是的,ServerSocket 我的意思是连接建立后从 ServerSocket.accept 返回的套接字
让我澄清一下这个问题。
看图
在所有四个套接字同时运行的情况下,这样的连接是否可行!
ServerSocket 是来自 java.net API 的 ServerSocket 普通 Socket 是来自 java.net Api 的 Socket
是的,ServerSocket 我的意思是连接建立后从 ServerSocket.accept 返回的套接字
你试过了吗?
是的,可以通过ip地址和端口共同定义一个通信端。由于两台服务器将具有不同的 IP 地址,因此不会有任何问题。
也想过互联网?几乎所有的 Web 服务器都在端口 80 上运行,并且运行良好。
当然,为什么不呢?您的问题甚至不需要它的相反部分,其中两个对等方都是服务器并且都是客户端。服务器可以在同一端口上接受任意数量的连接。真的没有什么可说的了。
套接字是(src ipAddr/port & dest ipAddr/port)的组合。这构成了一个唯一的套接字,并且在给定的时间点机器上只能存在一个这样的套接字。
正如@EJP 指出的那样,是的,它没有任何区别。对于一台机器,绑定到端口以侦听/发送数据不依赖于其他机器。端口号始终与它自己的机器有关。端口号范围从 0 到 65535(2 个字节)。0-1024 保留给知名端口。因此,在为侦听套接字选择端口号时,请选择 >1024 的端口。
我建议您在使用 Java 或任何语言进行 Socket Connections 编程之前,先大致了解 Sockets 和 Ports。
请参阅“ http://i.stack.imgur.com/Ly54C.png ”。修改了图形(寻找绿色框)。每当机器(机器 B)尝试将远程机器(机器 A)连接到特定目标端口时,操作系统会选择同一机器(机器 B)上的随机源端口