0

让我澄清一下这个问题。

看图图表

在所有四个套接字同时运行的情况下,这样的连接是否可行!

ServerSocket 是来自 java.net API 的 ServerSocket 普通 Socket 是来自 java.net Api 的 Socket

是的,ServerSocket 我的意思是连接建立后从 ServerSocket.accept 返回的套接字

4

3 回答 3

3

你试过了吗?

是的,可以通过ip地址和端口共同定义一个通信端。由于两台服务器将具有不同的 IP 地址,因此不会有任何问题。

也想过互联网?几乎所有的 Web 服务器都在端口 80 上运行,并且运行良好。

于 2013-07-17T09:58:50.497 回答
2

当然,为什么不呢?您的问题甚至不需要它的相反部分,其中两个对等方都是服务器并且都是客户端。服务器可以在同一端口上接受任意数量的连接。真的没有什么可说的了。

于 2013-07-17T10:02:02.200 回答
0

套接字是(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)上的随机源端口

于 2013-07-17T11:49:29.317 回答