Java网络编程(三)
1. ?????
2. ??????
发布日期:2021-04-30 21:05:35
浏览次数:104
分类:精选文章
本文共 5683 字,大约阅读时间需要 18 分钟。
????3
??UDP????
UDP?????????????????????????????????????????????????????????UDP??????
- ???
- ?????TCP???UDP??????????????????
- ???????????????????????????????
- ???
- ????????????
- ?????????????????????????
- ???
- ???????????????????????
- ??????????????????
????UDP?????????
?Java??????UDP??????????java.net???DatagramPacket????????????
1. ?????DatagramPacket
DatagramPacket?????????????????
- ?????
DatagramPacket(byte[] buf, int length)??????length?????DatagramPacket(byte[] buf, int length, InetAddress address, int port)???????????????
- ?????
void send(DatagramPacket p)????????void receive(DatagramPacket p)????????void close()??????????
2. ??????DatagramSocket
DatagramSocket????????????????????
DatagramSocket()????????????????DatagramSocket(int port)?????????close()??????????
??????
?????UDP???Java?????
1. ???UDP???
package com.wangxing.test1;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Scanner;public class UDPClient { public static void main(String[] args) throws Exception { Scanner input = new Scanner(System.in); System.out.println("???????????"); String info = input.nextLine(); byte[] sbyte = info.getBytes(); DatagramPacket sPacket = new DatagramPacket(sbyte, sbyte.length, InetAddress.getLocalHost(), 3000); DatagramSocket client = new DatagramSocket(); client.send(sPacket); client.close(); }} 2. ???UDP???
package com.wangxing.test1;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;public class UDPServer { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; DatagramPacket sPacket = new DatagramPacket(buf, buf.length); DatagramSocket server = new DatagramSocket(3000); server.receive(sPacket); byte[] data = sPacket.getData(); int len = sPacket.getLength(); String info = new String(data, 0, len); System.out.println("????????" + sPacket.getAddress().getHostAddress() + ":" + sPacket.getPort() + "????????" + info); server.close(); }} 3. ???UDP???????
package com.wangxing.test4;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.util.Scanner;public class UDPClient4 { public static void main(String[] args) throws Exception { Scanner input = new Scanner(System.in); DatagramSocket server = new DatagramSocket(); byte[] sbyte = new byte[1024]; DatagramPacket spack = new DatagramPacket(sbyte, sbyte.length); boolean flag = true; while (flag) { System.out.println("??????????"); String info = input.nextLine(); byte[] fbyte = info.getBytes(); DatagramPacket fpack = new DatagramPacket(fbyte, fbyte.length, InetAddress.getLocalHost(), 3000); server.send(fpack); if (info.equals("886")) { flag = false; System.out.println("??????"); } else { server.receive(spack); byte data[] = spack.getData(); int len = spack.getLength(); String msg = new String(data, 0, len); System.out.println("?????????????" + msg); } } try { server.close(); } catch (Exception e) { e.printStackTrace(); } System.out.println("??????"); }}// ??????class ClientThread4 extends Thread { private DatagramSocket server; private DatagramPacket datagramPacket; private boolean falg = true; public ClientThread4(DatagramSocket server, DatagramPacket datagramPacket) { this.server = server; this.datagramPacket = datagramPacket; } @Override public void run() { try { while (falg) { byte data[] = datagramPacket.getData(); int len = datagramPacket.getLength(); String info = new String(data, 0, len); System.out.println("???????????" + info); if (info.equals("886")) { falg = false; System.out.println("?????"); } else { info = "server?" + info; byte fbyte[] = info.getBytes(); DatagramPacket fPacket = new DatagramPacket(fbyte, fbyte.length, datagramPacket.getAddress(), datagramPacket.getPort()); server.send(fPacket); System.out.println("??????"); falg = false; } } } catch (Exception e) { e.printStackTrace(); } }} ?????UDP?????
package com.wangxing.test4;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;public class UDPServer4 { public static void main(String[] args) throws Exception { DatagramSocket server = new DatagramSocket(3000); byte[] bytes = new byte[1024]; while (true) { DatagramPacket packet = new DatagramPacket(bytes, bytes.length); System.out.println("****??????????????????"); server.receive(packet); ClientThread4 clientThread4 = new ClientThread4(server, packet); clientThread4.setPriority(4); clientThread4.start(); } }} ???????????UDP???Java??????????????????????????????????
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2026年06月03日 10时29分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php命名空间
2023-03-01
PHP命名空间带来的干扰
2023-03-01
PHP和MySQL Web开发从新手到高手,第1天-搭建PHP开发环境
2023-03-01
php商店管理系统,基于PHP的商店管理系统.doc
2023-03-01
PHP四大主流框架的优缺点总结
2023-03-01
PHP图片处理—PNG透明缩放并生成灰图
2023-03-01
php在liunx系统中设置777权限不起作用解决方法
2023-03-01
PHP基于openssl实现的非对称加密操作
2023-03-01
php基本符号大全
2023-03-01
php基础篇-二维数组排序 array_multisort
2023-03-01
php增删改查封装方法
2023-03-01
php多条件筛选功能的实现
2023-03-01
php多线程
2023-03-01
PHP大数组循环-避免产生Notice或者是Warning
2023-03-01
PHP大数组过滤元素、修改元素性能分析
2023-03-01
PHP大文件切片下载代码
2023-03-01
php如何做表格,新手怎么制作表格
2023-03-01
RabbitMQ集群 - 普通集群搭建、宕机情况
2023-03-01
php如何正确的获得文件的后缀名
2023-03-01