黑马程序员 java基础---UDP协议实现聊天功能
来源:互联网 发布:数据安全管理的概念 编辑:程序博客网 时间:2024/05/19 20:40
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------
编写一个DOS界面的聊天程序;
有发送数据和接收数据两部分功能,这两个功能要同时执行,需要用到多线程技术;一个线程控制接收,一个线程控制发送。
1、发送线程的编写思路
实现Runnable接口-----构造函数-----复写run方法-----从键盘读入数据-----将数据封装-----发送数据
class Send implements Runnable//实现runnable接口{public DatagramSocket ds;public Send(DatagramSocket ds){this.ds = ds;}public void run()//复写run方法{try{BufferedReader bfur = new BufferedReader(new InputStreamReader(System.in));//创建缓冲区String line = null;while((line=bfur.readLine())!=null){byte[] buf = line.getBytes();//封装数据时需要指明接收端的端口号DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("localhost"),10001);ds.send(dp);if(line.equals("886")){break;}}}catch (Exception e){throw new RuntimeException("发送失败!");}}}
2、接收线程的编写思路
实现Runnable接口-----构造函数-----创建一个DatagrmaPacket对象接收数据-----提取接收包里面的信息-----打印
class Rece implements Runnable{public DatagramSocket ds;public Rece(DatagramSocket ds){this.ds = ds;}public void run(){try{while(true){byte[] buf = new byte[1024];//限定接收数据包的最大长度DatagramPacket dp = new DatagramPacket(buf,buf.length);ds.receive(dp);//将接收到的数据存入dpString ip = dp.getAddress().getHostAddress();//获取数据包中的地址信息//获取正文信息,注意不能写成String data = dp.getData(),//因为dp.getData()返回的是byte类数据String data = new String(dp.getData(),0,dp.getLength());System.out.println(ip + ":" + data);}}catch (Exception e){throw new RuntimeException("接受失败!");}}}
3、主函数
class ChatDemo {public static void main(String[] args) throws Exception{DatagramSocket sendSocket = new DatagramSocket();DatagramSocket receSocket = new DatagramSocket(10001);new Thread(new Send(sendSocket)).start();//创建一个发送线程new Thread(new Rece(receSocket)).start();//创建一个接收线程}}
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------
- 黑马程序员 java基础---UDP协议实现聊天功能
- 黑马程序员--基础加强--第五篇--UDP实现聊天程序
- 黑马程序员_(UDP-聊天)
- 黑马程序员-UDP聊天程序
- 《黑马程序员》socket---udp聊天
- 网络编程实现聊天功能(UDP协议)
- 黑马程序员 java UDP DatagramSocket Thread Runnable 模拟qq聊天
- 黑马程序员--------JAVA基础---------UDP.TCP编程
- 黑马程序员—java技术blog—第二篇 UDP协议及基础应用
- UDP 聊天功能的实现
- 使用UDP实现聊天功能
- 使用UDP实现聊天功能
- 使用UDP实现聊天功能
- 利用java UDP协议,实现简单的双人聊天
- 黑马程序员 Java网络传输UDP和TCP协议
- 黑马程序员 java基础---TCP协议练习
- 黑马程序员-Java基础综合练习:简易聊天服务器
- 黑马程序员-Java基础综合练习:简易聊天客户端
- struts2学习笔记----wildcard
- 设计模式
- 《算法导论》习题解答 Chapter 22.1-2(邻接矩阵与链表)
- web.xml 详解
- (转载)Cocos2d-x学习之 整体框架描述
- 黑马程序员 java基础---UDP协议实现聊天功能
- UVa642 - Word Amalgamation
- Spring 声明式事务处理
- adb 用法总结
- “河软CSDN2011级表彰暨实习动员大会”顺利召开!
- 《算法导论》习题解答 Chapter 22.1-3(转置图)
- 关于spring MVC web.xml配置文件的编写总结(持续更新)
- 10-html5游戏坦克大战第六战(自己的坦克可以连续发射子弹)
- centos6.4系统下将php5.3降到5.2.17的方法