我对 Socket 编程有非常基本的怀疑(也与网络有关)。我有 ServerSocket 之类的东西..
ServerSocket ss = new ServerSocket(1234);
我有一个名为incomingLink的Socket来处理传入的请求..
Socket incomingLink = ss.accept();
并请注意,有超过 1 个客户端(比如 3 个客户端)有他们的出站链接套接字,例如..
Socket outgoingLink = new Socket(ServerIp, 1234);
好吧,要求是服务器有一些本地参数(比如)
String state;
int timeStamp;
每当第一个客户端请求到达时都应该更新。并且随后的请求被丢弃。这意味着如果首先收到客户端 1 的请求,那么客户端 2 和客户端 3 的请求将被丢弃。
现在我的问题是如果所有三个客户端都同时发送他们的请求,那么我的 ServerSocket 将如何处理这些请求?我是否需要创建一个套接字数组来独立处理这三个请求?
Socket[] incomingLink = new Socket[3];
incomingLink[0] = ss.accept();
incomingLink[1] = ss.accept();
incomingLink[2] = ss.accept();
或者,如果我使用单个incomingLink 套接字,底层传输协议(TCP/UDP)是否会为我处理这些同时请求,将它们缓冲到缓冲区,并保持正确的顺序,然后将它们一个接一个地提供给我ServerSocket,以便我的单个incomingLink Socket 可以正确处理它们?(假设这三个请求的传播延迟可能存在差异,即使这些请求是同时发送的)。
请帮忙。谢谢。