zoukankan      html  css  js  c++  java
  • java UDP小程序

     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 }
  • 相关阅读:
    转:我们是否应该把后端构建为API
    转:浅谈命令查询职责分离(CQRS)模式
    转:如何在Linux上提高文本的搜索效率
    结对编程???该歇歇了
    码农语录•「程序代码的可信度,不会比写的人还可信。」
    七个错误可能引发网页布局灾难
    为什么我不再和别人比较了?
    顶级程序员的10条最佳实践
    程序员淡定的姿态和操蛋的心...
    【好文翻译】码农们:效率与质量,你选择哪个?
  • 原文地址:https://www.cnblogs.com/cjunj/p/2755709.html
Copyright © 2011-2022 走看看