您的位置:首页 > 编程语言 > Java开发

学习 Java UDP 小结

2016-01-04 19:55 465 查看
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

学习收获:

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.
//定义一个输入 包的是键盘输入

Scanner sc = new Scanner(System.in);

//键盘输入存入字符串变量

String content = sc.next();

//字符串通过 getBytes() 方法获取字节 存入 buf 数组中

byte[] buf = content.getBytes();

2.

//DatagramPacket p 内容转换成数组,测试 p 中的内容是否为空

byte[] dataTest = p.getData();

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.clientTest.java

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

public class cilentTest {

public static void main(String args[]) {

try {

//定义一个 DatagramSocket 对象

DatagramSocket socket = new DatagramSocket();

//定义一个输入 包的是键盘输入

Scanner sc = new Scanner(System.in);

//键盘输入存入字符串变量

String content = sc.next();

//字符串通过 getBytes() 方法获取字节 存入 buf 数组中

byte[] buf = content.getBytes();

//测试是否存入数组。。。忽略它 = =

for(int i=0;i<buf.length;i++){

System.out.println("buf 的值:"+ buf[i]);

}

//udp 只能传输不超过 64 kb 的文件

if (buf.length > 1024 * 64) {

System.out.println("输出内容超出 udp 长度");

return;

}

//定义一个数据包 把 buf 数组的的内容,长度传进来

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

//设置访问的 IP 地址

packet.setAddress(InetAddress.getByName("192.168.1.159"));

//设置端口

packet.setPort(5550);

//把 packet 通过建立好的 socket 对象发送

socket.send(packet);

} catch (SocketException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

2.server.java

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

public class server {

/**

* @param args

*/

public static void main(String[] args) {

try {

//定义一个 DatagramSocket 对象 包含端口

DatagramSocket s = new DatagramSocket(5550);

//定义一个空的数组 并把它打包成 DatagramPacket 的数据包,此时 packet 是 null

byte[] b = new byte[1024*64-1];

DatagramPacket p = new DatagramPacket(b, b.length);

//DatagramPacket p 内容转换成数组,测试 p 中的内容是否为空

byte[] dataTest = p.getData();

for (int i = 0; i < 10; i++) {

System.out.println("packet 的内容:" + dataTest[i]);

}

System.out.println("等待接收数据包。。。");

//通过 receie 方法把从客户端传来的 packet 接收

s.receive(p);

//读取接收的数据,存入数组

byte[] date = p.getData();

String str = new String(date);

System.out.println("接收到" + p.getAddress().getHostAddress()

+ "发送过来的数据报:" + str);

} catch (SocketException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: