关闭

java6.02学习笔记UDPserver

标签: java
107人阅读 评论(0) 收藏 举报
分类:

简单的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();
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:32033次
    • 积分:1233
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:5篇
    • 译文:20篇
    • 评论:2条
    文章分类
    文章存档
    最新评论