java UDP小程式
來源:互聯網
上載者:User
1 package com.socket.udp;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.ByteArrayOutputStream;
5 import java.io.DataInputStream;
6 import java.io.DataOutputStream;
7 import java.io.IOException;
8 import java.net.DatagramPacket;
9 import java.net.DatagramSocket;
10 import java.net.InetSocketAddress;
11 import java.net.SocketException;
12
13 import org.junit.Test;
14
15 public class TestUDP {
16 @Test
17 public void testUDPServer(){
18 try {
19 byte[] buf = new byte[1024];
20 DatagramPacket dp = new DatagramPacket(buf,buf.length);
21 DatagramSocket ds = new DatagramSocket(5678);
22 while(true){
23 ds.receive(dp);//阻塞時方法
24 ByteArrayInputStream bais = new ByteArrayInputStream(buf);
25 DataInputStream dis = new DataInputStream(bais);
26 System.out.println(dis.readLong());
27 }
28 } catch (SocketException e) {
29 e.printStackTrace();
30 } catch (IOException e) {
31 e.printStackTrace();
32 }
33 }
34
35 @Test
36 public void testUDPClient(){
37 try {
38 long n = 99999L;
39 ByteArrayOutputStream baos = new ByteArrayOutputStream();
40 DataOutputStream dos = new DataOutputStream(baos);
41 dos.writeLong(n);
42 byte[] buf = baos.toByteArray();
43 DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",5678));
44 DatagramSocket ds = new DatagramSocket(9999);
45 ds.send(dp);
46 ds.close();
47 } catch (SocketException e) {
48 e.printStackTrace();
49 } catch (IOException e) {
50 e.printStackTrace();
51 }
52 }
53 }