UDP实现多人聊天
2024-09-25 00:41:30
发送端
package com.zy.exercise; import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner; public class send1 { public static void main(String[] args) throws Exception {
DatagramSocket datagramSocket = new DatagramSocket();
InetAddress byName = InetAddress.getByName("127.0.0.1");//如果别的主机要测试此处ip应该为192.168.219.61,即服务器的ip
System.out.println("欢迎来到多人聊天室");
Scanner scanner = new Scanner(System.in);
String username=scanner.nextLine();
while(true){
System.out.println("请输入:");
String str=scanner.nextLine();
str=username+"说:"+str;
// System.out.println(str);
byte b[]=str.getBytes();
DatagramPacket datagramPacket = new DatagramPacket(b, b.length, byName, 8888);
datagramSocket.send(datagramPacket);
if(str.equals("拜拜"))
{
System.out.println("退出");
break;
}
}
datagramSocket.close(); } }
服务器端(分发个多个主机)
package com.zy.exercise; import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException; public class server {
//分发给该段网络的所有服务器 public static void main(String[] args) throws Exception {
DatagramSocket datagramSocket = new DatagramSocket(8888);
byte b[]=new byte[1024];
while(true){
DatagramPacket datagramPacket = new DatagramPacket(b, b.length);
datagramSocket.receive(datagramPacket);
System.out.println(new String(b));
for (int i = 1; i < 100; i++) {
DatagramSocket datagramSocket2 = new DatagramSocket();
InetAddress byName = InetAddress.getByName("192.168.219."+i);
DatagramPacket datagramPacket2 = new DatagramPacket(b, b.length, byName, 10086);
datagramSocket2.send(datagramPacket2); } }
// datagramSocket.close(); } }
接收端
package com.zy.exercise; import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException; public class receive1 { public static void main(String[] args) throws Exception {
System.out.println("xxxx聊天群");
DatagramSocket datagramSocket = new DatagramSocket(10086); byte b[]=new byte[1024];
while(true){
DatagramPacket datagramPacket = new DatagramPacket(b, b.length); datagramSocket.receive(datagramPacket);
System.out.println(new String(b));
} } }
结果
最新文章
- java入门笔记(1)
- flask SQLAlchemy中一对多的关系实现
- (转)接口自动化测试 – Java+TestNG 测试 Restful Web Service
- 三步走起 提升 iOS 审核通过率 上篇
- SGU 147.Black-white king
- jquery.cookie()方法
- altium designer14的Import wizard 为空的解决方法
- 那两年炼就的Android内功修养
- c++ string.find()函数的陷阱
- 最小化安装Linux记录
- for 循环语句
- 小程序脚本语言WXS,你想要的都在这里了
- Oracle参数设置之set与reset的实际案例
- mysql字符串用法
- PHP ==与===的区别
- sql server 碎片整理——DBCC SHOWCONTIG
- 在Windows中配置Rsync同步
- 使用go实现的lisp
- IE6-IE9不支持table.innerHTML的解决方法--终极解决办法
- java梳理-一个汉字占多大空间