1
所以我尝试创建一个简单的服务器客户端应用程序。服务器客户端简单程序
我有服务器,哪些多播消息给订阅的客户端。
客户可以明显地订阅或取消订阅。
这里是插座
try // create DatagramSocket for sending and receiving packets
{
socket = new DatagramSocket(6666);
} // end try
catch (SocketException socketException)
{
System.exit(1);
} // end catch
服务器端的代码,我也创建了等待进入的口袋
while(true)
{
try // receive packet, display contents, return copy to client
{
byte[] data = new byte[ 100 ]; // set up packet
DatagramPacket receivePacket =
new DatagramPacket(data, data.length);
socket.receive(receivePacket); // wait to receive packet
String Message = receivePacket.getData().toString();
.........
这里一个线程客户端
try {
socket = new DatagramSocket();
} catch (SocketException ex) {
displayArea.append(ex + "\n");
}
我在这里尝试发送数据包
byte[] data = message.getBytes(); // convert to bytes
try {
// create sendPacket
DatagramPacket sendPacket = new DatagramPacket(data,
data.length, InetAddress.getLocalHost(), 6666);
} catch (UnknownHostException ex) {
displayArea.append(ex + "\n");
}
嗯,问题是我不认为数据包到达服务器,我知道线程正在等待数据包,我可以在调试中看到它确实到达了socket.receive
部分,但是没有任何反应。
我在同一台计算机上使用客户端和服务器。
任何想法我做错了什么?
谢谢。
我会使用数据包嗅探器来查看数据包是否在您的盒子上收到。 Wireshark,tcpdump等。 – Gray
小心:Windows上的Wireshark无法观察环回 – Aubin