2015-01-20 64 views
0

大家好我對Java很新,我正在嘗試datagramsocket發送和接收數據包。我的客戶正在發送數據包,但服務器沒有收到。 請幫助我,在此先感謝。
我的客戶端代碼如下:Datagramsocket未收到

outString = "Hello World" 
InetAddress hostAddress = InetAddress.getByName("localhost"); 
buf = outString.getBytes(); 
DatagramPacket out = new DatagramPacket(buf, buf.length, hostAddress, 4002); 
s.send(out); 

我的服務器端代碼:

DatagramSocket sk = new DatagramSocket(PORT); 
DatagramPacket dgp = new DatagramPacket(buf, buf.length); 
sk = new DatagramSocket(PORT); //PORT is 4002 
while (true) { 
    sk.receive(dgp); 
    String rcvd = new String(dgp.getData(), 0, dgp.getLength()) + ", from address: " 
     + dgp.getAddress() + ", port: " + dgp.getPort(); 
    System.out.println(rcvd); 
} 
+0

任何錯誤信息?如果是,在哪裏? – 2015-01-20 19:06:36

回答

0

這個例子對我的作品

public static void main(String[] args) throws IOException { 
    if (args.length == 0) { 
     byte[] buf = new byte[128]; 
     DatagramPacket dgp = new DatagramPacket(buf, buf.length); 
     DatagramSocket sk = new DatagramSocket(PORT); //PORT is 4002 
     while (true) { 
      sk.receive(dgp); 
      String rcvd = new String(dgp.getData(), 0, dgp.getLength()) + ", from address: " 
        + dgp.getAddress() + ", port: " + dgp.getPort(); 
      System.out.println(rcvd); 
     } 
    } else { 
     String outString = "Hello World"; 
     InetAddress hostAddress = InetAddress.getByName("localhost"); 
     byte[] buf = outString.getBytes(); 
     DatagramPacket out = new DatagramPacket(buf, buf.length, hostAddress, 4002); 
     DatagramSocket s = new DatagramSocket(); 
     s.send(out); 
    } 
} 
相關問題