package com.yjf.esupplier.common.test;import java.net.DatagramSocket;
import java.net.SocketException;/*** @author shusheng* @description 通过多线程改进,在一个窗口中同时接收又发送* @Email shusheng@yiji.com* @date 2019/1/10 23:12*/
public class ChatRoom {public static void main(String[] args) throws SocketException {DatagramSocket dsSend = new DatagramSocket();DatagramSocket dsReceive = new DatagramSocket(12306);SendThread st = new SendThread(dsSend);ReceiveThread rt = new ReceiveThread(dsReceive);Thread t1 = new Thread(st);Thread t2 = new Thread(rt);t1.start();t2.start();}}

package com.yjf.esupplier.common.test;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;/*** @author shusheng* @description* @Email shusheng@yiji.com* @date 2019/1/10 23:16*/
public class SendThread implements Runnable {private DatagramSocket socket;public SendThread(DatagramSocket socket) {this.socket = socket;}@Overridepublic void run() {try {String line = null;while (true) {Scanner scan = new Scanner(System.in);line = scan.nextLine();if (line.equals("exit")) {break;}byte[] bytes = line.getBytes();DatagramPacket packet = new DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getByName("localhost"), 12306);socket.send(packet);}socket.close();} catch (IOException e) {e.printStackTrace();}}}

package com.yjf.esupplier.common.test;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;/*** @author shusheng* @description* @Email shusheng@yiji.com* @date 2019/1/10 23:27*/
public class ReceiveThread implements Runnable {private DatagramSocket socket;public ReceiveThread(DatagramSocket socket) {this.socket = socket;}@Overridepublic void run() {try {while (true) {// 创建一个包裹byte[] bys = new byte[1024];DatagramPacket dp = new DatagramPacket(bys, bys.length);// 接收数据
                socket.receive(dp);// 解析数据String ip = dp.getAddress().getHostAddress();String s = new String(dp.getData(), 0, dp.getLength());System.out.println("from " + ip + " data is : " + s);}} catch (IOException e) {e.printStackTrace();}}}

转载于:https://www.cnblogs.com/zuixinxian/p/11275396.html

【UDP通过多线程改进,在一个窗口中同时接收又发送】相关推荐

  1. win7打开计算机 多窗口,win7电脑无法在一个窗口中打开多个文件夹怎么办?

    之前小编曾经听说过,很多朋友都无法忍受IE浏览器,就是因为IE浏览器每打开一个网址,就会新弹出一个窗口,那也就是说,咱们多打开几个窗口的话,下面的任务栏窗口岂不是就密密麻麻了?如果这样的操作大家受不了 ...

  2. 打开多个界面_使用 Terminator 在一个窗口中运行多个终端

    Terminator 为在单窗口中运行多个 GNOME 终端提供了一个选择,让你可以灵活地调整工作空间来适应你的需求. -- Sandra Henry-stocker(作者) Terminator 为 ...

  3. 没有run窗口_使用 Terminator 在一个窗口中运行多个终端 | Linux 中国

    Terminator 为在单窗口中运行多个 GNOME 终端提供了一个选择,让你可以灵活地调整工作空间来适应你的需求.-- Sandra Henry-stocker Terminator 为在单窗口中 ...

  4. IDEA中如何在一个窗口中打开多个项目

    idea在一个窗口如何打开多个项目 在使用Spring进行微服务开发时,需要同时打开很多个项目,但是如果每一个项目都单独一个窗口的话,切换就很麻烦,最方便的就是在IDEA一个窗口中管理多个项目. 在I ...

  5. WPF在一个窗口中实现多个视图

    WPF Multiple Views in One Window 实现的内容 单击不同的按钮在同一个窗口中显示不同的界面 参考:https://www.youtube.com/watch?v=xUwk ...

  6. C# message简单实现窗口间信息接收与发送

    刚接触windows 不同程序 窗口消息传递,不理解IntPtr SendMessage(int hWnd, int msg, IntPtr wParam, IntPtr lParam)这函数怎么用? ...

  7. java同时关闭两个窗口_在一个窗口中同时关闭多个窗口的问题(Swing中事件多点传送的问题) | 学步园...

    class   A{} A中包含有: JFrame   frameA; JButton   btnA; class   B{} B中包含有: final   JFrame   frameB; Stat ...

  8. python多窗口显示内容_如何在一个窗口中显示多个页面?

    我正在创建一个待办程序.我有一个侧菜单(只是vbox中的qpushbutton)和一个显示内容的主窗口小部件.然而,我需要一种方法来显示不同的内容在主窗口小部件的基础上是什么侧菜单按钮按下.我尝试过使 ...

  9. c#在一个窗口中打开另一个窗口

    1.今天功能需要,打开新的窗口,这里简单记录下 2.实现机制,在主程序打开第一个窗口,在第一个窗口里面写入触发事件,打开另一个窗口,并隐藏当前窗口 3.实现代码段 创建两个窗口 分别为  setPar ...

最新文章

  1. 吴裕雄 python 神经网络——TensorFlow 花瓣分类与迁移学习(1)
  2. 【AI-1000问】为什么OpenCV读取的图像格式是BGR?
  3. boost::contract模块实现separate body的测试程序
  4. 如何使用 HTTP Headers 来保护你的 Web 应用
  5. 无法识别的属性“targetFramework”。请注意属性名称区分大写和小写。错误解决的方法...
  6. C++学习笔记-----operator=函数处理自赋值
  7. Java StreamTokenizer quoteChar()方法与示例
  8. 从现实抽象出类的步骤
  9. 630显卡驱动安装win7_Centos7 显卡驱动安装教程
  10. 服务器向客户端发送数据自动中断
  11. MaskFlownet图
  12. 计算机怎么没有word文档,word没了怎么回事 为什么电脑没有了word
  13. C语言Windows命令行编程
  14. idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错
  15. Java 学习笔记 —— 基础部分
  16. air flow空调上是什么意思_air flow空调滤芯上是什么意思
  17. 艾司博讯:拼多多新手如何正确使用多多进宝?
  18. 软件缺陷及其生命周期
  19. 世平信息数据安全合规检测实践论文入选中文核心期刊
  20. dotnet 读 WPF 源代码笔记 创建 SolidColorBrush 性能没有想象那么差

热门文章

  1. MAC中用ImageMagick转换图像
  2. 【Python】极简单的方式序列化sqlalchemy结果集为JSON
  3. 企业混合云的VERITAS数据保护方案
  4. 使用print写文件
  5. android中的资源文件
  6. 吉隆坡强制所有餐馆明年必须设有无线上网服务
  7. python local variable 'xxx' referenced before assignment
  8. visual studio 2017 连接 SQL Server
  9. 集合的常用方法(增加、删除、并集、交集、差集、对等差分、超集和子集)
  10. c语言编写一元二次方程