我正在尝试在同一设备上打开一个发送方/接收方套接字并向路由器发送一个 64k 数据包,然后将其接收回来。关键是数据包应该通过路由器。因此,我将能够告诉用户有关他本地 wifi 速度的信息。这是我测试的:
InetAddress addr = InetAddress.getLocalHost();
datagramSocket = new DatagramSocket(SERVER_PORT, addr);
serverPacket = new DatagramPacket(data, MAX_BUFFER_SIZE, addr, CLIENT_PORT);
DatagramSocket clientSocket = new DatagramSocket(CLIENT_PORT, inetAddress);
DatagramPacket packet = new DatagramPacket(data, MAX_BUFFER_SIZE);
packet.setPort(SERVER_PORT);
datagramSocket.send(serverPacket);
clientSocket.receive(packet);
clientSocket.send(packet);
datagramSocket.receive(serverPacket);
正如我所说的数据是 64k 字节。然而上述操作在 2 毫秒内完成!所以当我计算 totalPacketSize / elapsedTime 结果是巨大的!我认为套接字在设备上共享数据,永远不会去路由器。你有什么建议吗?