DatagramSocket此类表示用来发送和接收数据报包的套接字。

DatagramPacket此类表示数据报包。


package cn.sxt.UdpDemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner; public class ClientB {
public static void main(String[] args) throws IOException {
//创建一个datagram socket 用于结束
DatagramSocket ds = new DatagramSocket(9000);
while(true) {
//接收客户端A的信息
byte[] recbuf = new byte[1024];
DatagramPacket recDp = new DatagramPacket(recbuf, recbuf.length);
ds.receive(recDp);
String recMsg = new String(recbuf,0,recDp.getLength());
System.out.println("clientA说"+recMsg); //发送信息到客户端A
System.out.println("请输入");
Scanner sc = new Scanner(System.in);
String msg = sc.next(); System.out.println("开始发送数据:"+msg); InetAddress toIp = InetAddress.getLocalHost();
byte[] buf = msg.getBytes();
// 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。
DatagramPacket dp = new DatagramPacket(buf,buf.length,toIp,8000);
//发送数据报
ds.send(dp);
//ds.close();
} }
}
package cn.sxt.UdpDemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner; public class ClientA {
public static void main(String[] args) throws IOException {
//创建数据报套接字并将其绑定到本地主机上的指定端口8000
DatagramSocket ds = new DatagramSocket(8000);
while(true) {
System.out.println("请输入");
Scanner sc = new Scanner(System.in);
String msg = sc.nextLine(); //发送信息到客户端B
System.out.println("开始发送数据:"+msg);
byte[] buf = msg.getBytes(); InetAddress toIp = InetAddress.getLocalHost();
// 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。
DatagramPacket dp = new DatagramPacket(buf,buf.length,toIp,9000); //用数据报包的套接字,通过8000发送数据报
ds.send(dp); //接收客户端B的信息
byte[] recBuf = new byte[1024];
DatagramPacket recDp = new DatagramPacket(recBuf,recBuf.length);
//信息接收
ds.receive(recDp); String recMsg = new String(recBuf,0,recDp.getLength());
System.out.println("clientB说:"+recMsg);
//ds.close();
} }
}

最新文章

  1. uoj228 基础数据结构练习题
  2. WordPress
  3. HDU 1556 Color the ball(线段树区间更新)
  4. LeetCode 3 Longest Substring Without Repeating Characters 解题报告
  5. 繁华模拟赛 vicent的字符串
  6. open_table
  7. vector的含义
  8. OpenStack25
  9. vultr机房vps价格20%优惠,赶紧来抢!
  10. iOS之 重绘机制
  11. How Many Zeroes? LightOJ - 1140
  12. 一、python中的一切皆对象
  13. Jena TDB Assembler
  14. selinux介绍及关闭selinux指南
  15. 2019PKU\THU WC题解
  16. 关于GCC Cygwin MinGW MSYS
  17. 工具 | Axure基础操作 No.1
  18. 离线安装ocp3.11需要注意的事情
  19. Ajax-02 iframe实现伪“Ajax”
  20. php函数引用参数解惑《细说php》

热门文章

  1. Qt实现 动态化遍历二叉树(前中后层次遍历)
  2. 2.go的变量和常量
  3. ue4 StringTable
  4. vue.js学习第一天,了解vue.js
  5. JavaScript 查找图中连接两点的所有路径算法
  6. BigData_Jia
  7. windows7 64下redis安装
  8. Cocostudio 1.4 实现的Demo程序源码
  9. c# AutoMapper 使用方式和再封装
  10. 亲测实验,stm32待机模式和停机模式唤醒程序的区别,以及唤醒后程序入口