网络编程UDP多线程聊天室
2014-03-03 15:52
507 查看
面向无连接,发数据之前不需要链接,将数据打包过后发送数据,如果地址没找到就把包丢弃,分为发送端和接收端
1、将数据及源和目的封装成数据包中,不需要建立连接
2、每个数据包的大小在限制64k内
3、因为连接,是不可靠协议
4、不需要建立连接,速度快
聊天工具udp协议
步骤:
发送端:
1、定义sockte服务
2、提供数据并将数据封装到数据包
3、通过sockte的send方法将数据包发送出去
接收端:
1、定义sockte服务并监听端口
2、定义一个数据包,用于接收储存接受到的数据
4、通过数据包功能将这些不同数据取出
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
1、将数据及源和目的封装成数据包中,不需要建立连接
2、每个数据包的大小在限制64k内
3、因为连接,是不可靠协议
4、不需要建立连接,速度快
聊天工具udp协议
步骤:
发送端:
1、定义sockte服务
2、提供数据并将数据封装到数据包
3、通过sockte的send方法将数据包发送出去
接收端:
1、定义sockte服务并监听端口
2、定义一个数据包,用于接收储存接受到的数据
4、通过数据包功能将这些不同数据取出
/* * udp实现网络聊天 * 使用多线程实现一个控制接收一个控制发送*/ class Send implements Runnable{ private DatagramSocket ds; Send(DatagramSocket ds){ this.ds = ds; } public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String len=null; while((len=br.readLine())!=null){ if(len.equals("end")) break; byte[] buf = len.getBytes(); DatagramPacket pac = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.2.255"), 10003); ds.send(pac); } } catch (Exception e) { throw new RuntimeException("发送异常"); } } } class recev implements Runnable{ private DatagramSocket rds ; public recev(DatagramSocket rds) { this.rds = rds; } public void run() { try { while(true){ byte[] buf = new byte[1024]; DatagramPacket rdpk = new DatagramPacket(buf, buf.length); rds.receive(rdpk); String ip = rdpk.getAddress().getHostAddress(); String count = new String(rdpk.getData(), 0, rdpk.getLength()); int port = rdpk.getPort(); System.out.println("来自:"+ip+"端口:"+port+"信息:"+count); } } catch (Exception e) { throw new RuntimeException("接收异常"); } } } public class Thred_UDP { public static void main(String[] args) throws Exception{ DatagramSocket sds = new DatagramSocket(); DatagramSocket rds = new DatagramSocket(10003); Send send = new Send(sds); recev recev = new recev(rds); Thread sendtThread = new Thread(send); Thread recevThread = new Thread(recev); sendtThread.start(); recevThread.start(); } }----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
相关文章推荐
- Java基础知识强化之网络编程笔记05:UDP之多线程实现聊天室案例
- Java网络编程 - 基于UDP协议 实现简单的聊天室程序
- 网络编程-UDP协议---简单聊天室程序
- 网络编程-UDP多线程改进
- [网络编程]——TCP_Socket通信_聊天室_客户端多线程
- 网络编程概念。一个UDP构造的聊天室
- 网络编程 UDP通信的过程 TCP通信过程 多线程文件上传
- {网络编程}和{多线程}应用:基于UDP协议【实现多发送方发送数据到同一个接收者】--练习
- Rhyme/ java TCP网络编程 聊天室(群聊与私聊)TCP、多线程、IO流编程完整代码实现
- 网络编程_TCP_Socket通信_聊天室_客户端多线程_群聊JAVA191-192
- linux网络编程——UDP局域网聊天室
- Windows网络编程-简单的多线程聊天室
- socket 网络编程快速入门(二)教你编写基于UDP/TCP的服务端多线程通信
- 网络编程_多线程实现聊天室程序
- 网络编程(学习整理)---2--(Udp)实现简单的控制台聊天室
- [置顶] 多线程+网络编程实现聊天室
- 10 qt udp编程和网络聊天室的实现
- Java笔记(9)-网络编程、URL、InetAddress、套接字、Socket、ServerSocket、多线程、UDP、广播数据包、远程调用
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- 网络编程初探--使用UDP协议的简易聊天室