当我们(在这种情况下)向客户端/服务器发送数据时,使用相同的端口号真的很重要吗?我的猜测是否定的,因为发送数据时使用的端口并不重要。(协议在内部随机给你 - 这是这个想法吗?)唯一必须保留的东西,端口必须是接收机器上的任何可用端口(超过 1000,因为这些是系统保留的),并且如果那个接收者决定发回一些东西,他或她将有足够的关于发送者的信息:他的 IP 地址、端口号等。据我所知,收到的包装提供了所有这些信息。
以下只是我上面所说的说明。
public class Server {
public static void main(String[] args) {
GameServer server = new GameSever(9822);
server.start();
InetAddress address = null;
int port = 7877;
try {
address = InetAddress.getByName("192.168.0.2");
} catch (UnknownHostException e) {
e.printStackTrace();
}
server.send(new byte[] { 1, 2, 3 }, address, port);
}
}