UDP多线程在线咨询

package com.wuming.chat;public class TalkStudent {public static void main(String[] args) {//开启两个线程new Thread(new TalkSend(7777,"localhost",9999)).start();new Thread(new TalkReceive(8888,"老师")).start();}
}

==============

package com.wuming.chat;public class TalkTeacher {public static void main(String[] args) {new Thread(new TalkSend(5555,"localhost",8888)).start();//5555端口是随便写的;8888对应学生端口new Thread(new TalkReceive(9999,"学生")).start();//9999端口对应学生端口}
}

=============

package com.wuming.chat;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class TalkReceive implements Runnable{/*** When an object implementing interface <code>Runnable</code> is used* to create a thread, starting the thread causes the object's* <code>run</code> method to be called in that separately executing* thread.* <p>* The general contract of the method <code>run</code> is that it may* take any action whatsoever.** @see Thread#run()*/DatagramSocket socket=null;private int port;private String msgFrom;public TalkReceive(int port,String msgFrom) {this.port = port;this.msgFrom = msgFrom;try {socket = new DatagramSocket(port);} catch (SocketException e) {e.printStackTrace();}}@Overridepublic void run() {while (true) {try {//准备接受包裹byte[] container = new byte[1024];DatagramPacket packet = new DatagramPacket(container, 0, container.length);socket.receive(packet);//阻塞式接受包裹//断开连接 byebyte[] data = packet.getData();String receiveData = new String(data, 0, packet.getLength());System.out.println(msgFrom + ":" + receiveData);if (receiveData.equals("bye")) {break;}} catch (IOException e) {e.printStackTrace();}}}
}
=======================
package com.wuming.chat;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;public class TalkSend implements Runnable{/*** When an object implementing interface <code>Runnable</code> is used* to create a thread, starting the thread causes the object's* <code>run</code> method to be called in that separately executing* thread.* <p>* The general contract of the method <code>run</code> is that it may* take any action whatsoever.** @see Thread#run()*/DatagramSocket socket=null;BufferedReader reader=null;private int fromPort;private String toIp;private int toPort;public TalkSend(int fromPort, String toIp, int toPort) {this.fromPort = fromPort;this.toIp = toIp;this.toPort = toPort;try {socket = new DatagramSocket(fromPort);//准备数据:控制台读取System.inBufferedReader reader = new BufferedReader(new InputStreamReader(System.in));} catch (Exception e) {e.printStackTrace();}}@Overridepublic void run() {//准备数据:控制台读取System.inBufferedReader reader = new BufferedReader(new InputStreamReader(System.in));while (true){try{String data = reader.readLine();byte[] datas = data.getBytes();DatagramPacket packet = new DatagramPacket(datas, 0, data.length(), new InetSocketAddress(this.toIp,this.toPort));socket.send(packet);if (data.equals("bye")){break;}}catch(Exception e){e.printStackTrace();}}}
}

===============

控制台输入:

打开下面这个结果为

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推动边缘计算的七项核心技术

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;施巍松文章转载自边缘计算社区计算模型的创新带来的是技术的升级换代&#xff0c;而边缘计算的迅速发展也得益于技术的进步。本节总结了推动边缘计算发展的7项核心技术&#xff0c;它们包括网络、隔离技术、体系结构…

IOS – OpenGL ES 调节图像对比度 GPUImageContrastFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

React之字符串形式的ref

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>1_字符串形式的ref</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 --> &…

IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

Spark精华问答 | Spark 会替代Hadoop 吗?

戳蓝字“CSDN云计算”关注我们哦&#xff01;Spark是一个针对超大数据集合的低延迟的集群分布式计算系统&#xff0c;比MapReducer快40倍左右&#xff0c;是hadoop的升级版本&#xff0c;Hadoop作为第一代产品使用HDFS&#xff0c;第二代加入了Cache来保存中间计算结果&#xf…

React之回调ref中回调执行次数的问题

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>3_回调ref中回调执行次数的问题</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心…

IOS – OPenGL ES 调节图像伽马线 GPUImageGammaFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云漫圈 | 容器技术docker应用场景解析

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;channingbreeze文章转载自程序员乔戈里话说小史已经接受了A厂的offer&#xff0c;这不&#xff0c;已经在公司附近租好了房子&#xff0c;准备搬家过去住了。家里的东西真是多呀&#xff0c;小史的很多家具都是组装…

IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

一部刷爆朋友圈的5G短片,看完才知道5G多暖多重要!

戳蓝字“CSDN云计算”关注我们哦&#xff01;文章转载自网优雇佣军这是一部刷爆了国内外朋友圈的5G宣传短片…连接5G以后的世界清晨&#xff0c;男孩坐上自动驾驶出租车去乡下看爷爷奶奶在车上&#xff0c;男孩戴上VR智能眼镜如身临其境般观看直播球赛此刻&#xff0c;乡下的爷…

IOS – OpenGL ES 调节图像褐色 GPUImageSepiaFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

IOS – OpenGL ES 调节图像灰色 GPUImageGrayscaleFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

豆瓣已玩烂,来爬点有逼格的 ——IMDB 电影提升你的品位

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;翻滚吧羊宝宝文章转载自数据森麟前言转战Python半年&#xff0c;接触爬虫2个月&#xff0c;期间读了10本相关书籍&#xff0c;完成此作&#xff0c;算是对过去学习、实践的一次回顾。也希望与更多的python&#xff…

React之回调函数形式的ref

<!DOCTYPE html> <html> <head> <meat charset"UTF-8"> <title>2_回调函数形式的ref</title> </head> <body> <!-- 准备好一个容器 --> <div id"test"></div> <!-- 核心库 -->…

IOS – OpenGL ES 调节图像RGB通道 GPUImageRGBFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

云评测 | 开发者最有用的开源云监控工具有哪些呢? 这7款神器总有一款适合你!...

戳蓝字“CSDN云计算”关注我们哦&#xff01;整理 | 刘丹云计算作为IT基础设施的交付和使用模式&#xff0c;通过网络以按需、易扩展的方式获得所需的资源。而云平台聚集了大量软硬件资源&#xff0c;并采用虚拟化技术实现动态按需提供需要服务&#xff0c;值得注意的是&#x…

IOS – OpenGL ES 调节图像不透明度 GPUImageOpacityFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

要闻君说:华云数据“豪气”收购超融合厂商Maxta;VMware有意“携手”微软Azure云;亚马逊获3亿美元云计算合同...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 大家好&#xff01;偶是要闻君。气温回升、春意盎然&#xff0c;充分休息两天后就抓紧学习吧&#xff01;文/要闻君全球第二大市场研究机构MarketsandMarkets日前发布报告称&#x…

IOS – OpenGL ES 调节图像阴影 GPUImageHighlightShadowFilter

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

SDN精华问答 | SDN可以做什么?

进入2019年&#xff0c;基于SDN的解决方案再次成为最热门的话题之一&#xff0c; 从运营商、到OTT再到大的企业都已经开始大谈SDN网络规划和部署&#xff0c;甚至WannaCry蠕虫爆发时有人谈到利用SDN的方法抵御。今天&#xff0c;我们就来看看关于SDN的精华问答吧。1Q: SDN可以做…