Socket —— 通过多线程简单模拟了聊天室
来源:互联网 发布:seo百分百秒收录 编辑:程序博客网 时间:2024/06/04 18:02
/** * Created by Liwei on 2016/7/17. * 模拟一个简单的聊天室程序 * 通过多线程改进刚开的聊天程序,这样我们就可以实现在一个窗口发送和接收数据了 */public class MainChatRoom { public static void main(String[] args) throws SocketException { // 作为发送端的 Socket DatagramSocket dsSend = new DatagramSocket(); // 作为接收端的 Socket ,要指定端口 DatagramSocket dsReceive = new DatagramSocket(10086); SendThread sendThread = new SendThread(dsSend); ReceiveThread receiveThread = new ReceiveThread(dsReceive); Thread t1 = new Thread(sendThread); Thread t2 = new Thread(receiveThread); t1.start(); t2.start(); }}
发送端线程:
public class SendThread implements Runnable { private DatagramSocket datagramSocket; /** * 通过构造方法接收外部传递进来的 Socket 对象 * @param datagramSocket */ public SendThread(DatagramSocket datagramSocket){ this.datagramSocket = datagramSocket; } @Override public void run() { try { // 封装键盘录入数据 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = null; while ((line = br.readLine())!=null){ if("886".equals(line)){ break; } byte[] bys = line.getBytes(); DatagramPacket dp = new DatagramPacket(bys,bys.length, InetAddress.getByName("192.168.100.112"),10086); // 发送数据 datagramSocket.send(dp); } // 释放资源 datagramSocket.close(); } catch (IOException e) { e.printStackTrace(); } }}
接收端线程:
public class ReceiveThread implements Runnable { private DatagramSocket datagramSocket; public ReceiveThread(DatagramSocket datagramSocket) { this.datagramSocket = datagramSocket; } @Override public void run() { try { byte[] bys = new byte[1024]; while (true) { DatagramPacket dp = new DatagramPacket(bys, bys.length); // 接收数据 datagramSocket.receive(dp); // 解析数据 String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(),0,dp.getLength()); System.out.println("从 ip "+ ip + " 接收到数据:" + data); } } catch (IOException e) { e.printStackTrace(); } // 接收端,不要关闭 Socket }}
0 0
- Socket —— 通过多线程简单模拟了聊天室
- Android中Socket通信,模拟了一个简单的CS聊天室
- TCP Socket简单模拟多线程
- 黑马程序员—多线程聊天室(Socket介绍+源码)
- java socket多线程聊天室
- java socket多线程聊天室
- Android笔记——Socket通信实现简单聊天室
- C# socket编程实践——简单聊天室
- C# socket编程实践——简单聊天室
- Linux socket编程(三) 简单的多线程聊天室
- Linux socket编程(三) 简单的多线程聊天室
- Linux socket编程(三) 简单的多线程聊天室
- Socket加入多线程通信实现简单的CS聊天室
- Socket实现简单聊天室
- node socket 简单聊天室
- 简单模拟多线程Socket通信(java)
- 简单模拟多线程Socket通信(java)
- java 多线程,socket 简单模拟聊天软件
- 垂直进度条VerticalSeekBar
- shell开发入门,第一个shell
- FragmentPagerAdapter刷新数据原理分析与解决
- CSU-ACM2016暑假集训训练1-二分搜索-C
- 《代码大全》读书笔记及随想(day03)
- Socket —— 通过多线程简单模拟了聊天室
- JQuery Ajax提交form工具类
- ---简单的mvc模式理解案例
- 配置手工高级TFS2015特性
- 关于视图生命周期的问题
- android获取状态栏高度
- curl命令详解
- 在阿里云建一个网站
- 码神学习作业(if语句)