java实现基于UDP协议的聊天小程序操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java实现基于UDP协议的聊天⼩程序操作
UDP(User Data Protocol,⽤户数据报协议)是与TCP相对应的协议。
它是⾯向⾮连接的协议,它不与对⽅建⽴连接,⽽是直接就把数据包发送过去!
UDP适⽤于⼀次只传送少量数据、对可靠性要求不⾼的应⽤环境。
正因为UDP协议没有连接的过程,所以它的通信效率⾼;但也正因为如此,它的可靠性不如TCP协议⾼。
QQ就使⽤UDP发消息,因此有时会出现收不到消息的情况。
利⽤UDP协议的发送和接收,模拟聊天⼩程序
创建聊天程序的A端:
1、发送信息到接收端
1 、准备发送的信息【键盘录⼊】
2 、指定接受端的 ip
3 、指定接收端的端⼝
4 、打包【创建 DatagramPacket 的对象】
5 、发送【创建 DatagramSocket 的对象】
2、接收接收回复的信息
1 、准备接收使⽤字节数组
2 、把数组封装为数据报包【创建 DatagramPacket 的对象】
3 、接收数据
4 、解析报包有效数据
3 、上述操作循环操作
创建聊天程序的B端:
1、接收发送端的信息
1 、准备接收使⽤字节数组
2 、把数组封装为数据报包【创建 DatagramPacket 的对象】
3 、接收数据【创建 DatagramSocket 的对象】
4 、解析报包有效数据
2、回复发送端的信息
1 、准备发送的信息【键盘录⼊】
2 、指定发送的 ip 【解析接收的报包的 ip 即可】
3 、指定接收端的端⼝【解析接收的报包的端⼝即可】
4 、打包【创建 DatagramPacket 的对象】
5 、发送
3、上述操作循环操作
端⼝⼀:
package com.offcn.second;
import .DatagramPacket;
import .DatagramSocket;
import .InetAddress;
import java.util.Scanner;
public class MyQQ {
public static void main(String[] args) throws Exception{
DatagramSocket ds = new DatagramSocket();
Scanner sc= new Scanner(System.in);
while(true){
//发送消息
System.out.print("My:");
//输⼊发送信息
String smsg = sc.nextLine();
//byte[] sbs = smsg.getBytes();
//int slen = sbs.length;
//创建数据包
DatagramPacket sdp = new DatagramPacket(smsg.getBytes(),//数据转为byte数组
smsg.getBytes().length,//数据长度
InetAddress.getLocalHost(),//接收端端⼝号
9999);//接收端,端⼝号
//发送
ds.send(sdp);
//接收消息
//创建接收数据的数据包
DatagramPacket rdp = new DatagramPacket(new byte[1024],1024);
//接收数据
ds.receive(rdp);
//将接收的数据转为字符串
String rmsg = new String(rdp.getData(),0,rdp.getLength());
//打印输出
System.out.println("His:"+rmsg);
}
}
}
端⼝⼆:
package com.offcn.second;
import .DatagramPacket;
import .DatagramSocket;
import java.util.Scanner;
public class HisQQ {
public static void main(String[] args) throws Exception{
DatagramSocket ds = new DatagramSocket(9999);
Scanner sc = new Scanner(System.in);
while(true){
//创建接收数据的数据包
DatagramPacket rdp = new DatagramPacket(new byte[1024],1024);
ds.receive(rdp);
//将接收的数据转换为字符串
String rmsg = new String(rdp.getData(),0,rdp.getLength());
//输出接收到的信息
System.out.println("His:"+rmsg);
//给对⽅回消息
//输⼊发送的数据
System.out.print("My:");
String smsg = sc.nextLine();
//创建发送数据的数据包
DatagramPacket sdp = new DatagramPacket(smsg.getBytes(),
smsg.getBytes().length,
rdp.getAddress(),
rdp.getPort());
ds.send(sdp);
}
}
}
运⾏结果:
到此这篇关于java实现基于UDP协议的聊天⼩程序的⽂章就介绍到这了,更多相关java UDP聊天⼩程序内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。