【发布时间】:2016-05-01 07:33:42
【问题描述】:
我是 Java 套接字的新手,我正在尝试使用客户端-服务器创建一个简单的 UDP 传输。我现在的问题是服务器正在运行无限循环并且没有向客户端发送消息。对不起,如果我犯了一些愚蠢的错误,谢谢
服务器:
import java.net.*;
import java.util.*;
class EchoServer {
public static void main( String args[] ) throws Exception {
DatagramSocket socket = new DatagramSocket(54373);
DatagramPacket packet = new DatagramPacket(new byte[512],512);
String temp = "Hello client";
byte[] buffer = temp.getBytes();
while (true) {
socket.receive( packet );
System.out.println("Received from client");
DatagramPacket packet2 = new DatagramPacket(buffer,buffer.length,InetAddress.getByName("127.0.0.1"),54373);
socket.send( packet2 );
}
}
}
客户:
import java.net.*;
import java.util.*;
class EchoClient {
public static void main( String args[] ) throws Exception {
DatagramSocket socket = new DatagramSocket();
socket.setSoTimeout( 5000 );
byte[] buffer = "Hello Server".getBytes();
DatagramPacket packet = new DatagramPacket(buffer,buffer.length,InetAddress.getByName("127.0.0.1"),54373);
socket.send( packet );
DatagramPacket packet2 = new DatagramPacket(new byte[512],512);
socket.receive(packet2);
System.out.println("Received from server");
}
}
但是,我的服务器能够发送原始“数据包”而不是 packet2
【问题讨论】: