java6.02学习笔记UDPserver

原创 2016年06月02日 10:27:53

简单的udp传输程序。

import java.net.*;
import java.io.*;

public class UDPServer {
    public static void main(String[] args) throws Exception {
    //1创建一个byte数组存储输入的信息
        byte[] buf = new byte[1024];
        //2将输入的信息数组存储到包中,使用了DatagramSocket的构造方法。
        DatagramPacket dp = new DatagramPacket(buf,buf.length);
        //设置收信息的端口
        DatagramSocket ds = new DatagramSocket(8888);

        while(true) {
        //信息一旦传入就会存储到包中,使用receive()读取包。使用DatagramSocket中的getLength()方法获取接收到信息的长度。
            ds.receive(dp);
            System.out.println(new String(buf,0,dp.getLength()));
        }
    }
}

UDPCilent

import java.net.*;

public class UDPCilent {
    public static void main(String[] args) throws Exception {
    //将信息存储在数组中,getBytes方法可以将字符串转换成字符序列并存储到一个数组中。
        byte[] buf = (new String(String.valueOf(2365L)).getBytes());
        //将数据打包。
        DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("192.168.1.100",8888));
        //设置Cilent端口
        DatagramSocket ds = new DatagramSocket(6666);
        //发送数据。
        ds.send(dp);
        ds.close();
    }
}

将一个long型数传输,经常用到,使用了io流的相关知识。

import java.net.*;
import java.io.*;

public class UDPServer {
    public static void main(String[] args) throws Exception {
        byte[] buf = new byte[1024];

        DatagramPacket dp = new DatagramPacket(buf,buf.length);

        DatagramSocket ds = new DatagramSocket(8888);

        while(true) {
            ds.receive(dp);
            //将字节数组存储到流中的字节数组中
            ByteArrayInputStream bas = new ByteArrayInputStream(buf);
            DataInputStream dis = new DataInputStream(bas);
            //调用readLlong方法读出数组。
            System.out.println(dis.readLong());
            //System.out.println(new String(buf,0,dp.getLength()));
        }
    }
}

客户端

import java.net.*;
import java.io.*;
public class UDPCilent {
    public static void main(String[] args) throws Exception {
        long n = 54651L;
        //为字节数组建立管道
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(bos);
        //将字节数组写入流中,存储在一个字节数组中
        dos.writeLong(n);
        //将字节数组使用toVyteArray()方法恢复。
        byte[] buf = bos.toByteArray();


        System.out.println(buf.length);


        //byte[] buf = (new String(String.valueOf(2388888865L)).getBytes());
        DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("192.168.1.100",8888));

        DatagramSocket ds = new DatagramSocket(6666);
        ds.send(dp);
        ds.close();
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

java学习笔记

  • 2017年11月09日 13:53
  • 335KB
  • 下载

java8 stream学习笔记

pipeline 为了更好地对集合进行并行操作,java8中加入了stream API。以前对集合的操作策略由客户端提供,有了stream API后,对集合的操作集成到了集合内部,客户端只需要按需调...

Java JDK 7学习笔记

  • 2017年11月16日 16:09
  • 13.47MB
  • 下载

java学习笔记

  • 2015年12月02日 21:08
  • 229KB
  • 下载

java大数据学习笔记(四) 并发集合

java 5.0之前,还没有concurrent包的时候就有了一些用于并发的集合 Vector 同步的ArrayList。 Hashtable 同步的HashMap。 通过Collections.sy...

java学习笔记

  • 2014年10月03日 10:39
  • 65KB
  • 下载

Java学习笔记之IO流

  • 2016年08月11日 07:36
  • 15KB
  • 下载

Java学习笔记(1):访问修饰符protected和default的区别

访问修饰符,即对访问范围的控制。在Java中,有以下几种访问修饰符: 1.对类而言: (1)public:在所有的包中均可见 (2)default(默认):只在该类所在包中可见 注:类不能用priva...

java编程思想学习笔记

  • 2015年04月27日 16:13
  • 272KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java6.02学习笔记UDPserver
举报原因:
原因补充:

(最多只允许输入30个字)