说我有一台连接到许多客户端的服务器。当一个客户端向服务器发送数据包时,服务器会将数据包转发给除发送数据包之外的所有其他客户端。服务器保留相邻客户端的套接字列表(即Socket对象的ArrayList),服务器接受和分配的套接字称为clientSocket。我想通过arraylist并将每个socket与clientSocket进行比较,以确保数据包不会转发到原始客户端。我可以简单地使用clientSocket.equals(neighborSocket)来检查吗?或者我必须提取IP地址并根据它进行比较?我正在使用java socket。谢谢!
答案 0 :(得分:1)
首先,我认为你的意思是! clientSocket.equals(neighborSocket)
。假设是这种情况,我认为你可以(而且应该)使用clientSocket != neighborSocket
。
答案 1 :(得分:1)
您不关心套接字在某种程度上是否在逻辑上相等。你关心它们是否相同。因此,您应该使用==。
答案 2 :(得分:0)
似乎是一个旧线程,如果有人通过google java.net添加我的2美分.Socket实现从Object继承equals,下面等于Object的实现
public boolean equals(Object obj) {
return (this == obj);
}
因此,在Socket等于=(==)的情况下。