【Java网络编程】UDP协议实例——简单的在线聊天程序
2013-12-12 17:19
836 查看
package com.shaye.java.webtest; /* * 编写一个聊天程序 * 有收数据的部分,同时也能发送数据。 * 两部分需要同时执行,因此需要用到多线程技术。 */ /* * 定义一个UDP发送端 * 通过UDP传输方式,将一段文字数据发送出去 * 思路: * 1.建立SOCKET服务 * 2.提供数据,并将数据封装到数据包中 * 3.通过socket服务的发送功能将数据包发送出去 * 4.关闭资源 * * 定义一个UDP接收端,用于接收并处理UDP数据 *1.创建Socket服务。通常会监听一个接口, *2.定义接受数据的数据包 *3.通过Socket服务用定义好的数据包receive来自Udp的数据包 */ import java.io.*; import java.net.*; public class UdpChatOnline { public static int NetPort = 10002;//定义数据传输指定的端口号 public static void main(String[] args) throws Exception { //分别建立用于发送和接收的Socket服务 DatagramSocket sendSocket = new DatagramSocket(); DatagramSocket receSocket = new DatagramSocket(NetPort); //开启收发线程 new Thread(new Send(sendSocket)).start(); new Thread(new Rece(receSocket)).start(); } } class Send implements Runnable{ DatagramSocket ds; //使用给定的Socket服务建立用于发送数据的对象 public Send(DatagramSocket ds){ this.ds = ds; } public void run() { //键盘录入 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = null; try { while((line = br.readLine()) != null){ if("886".equals(line)){ break;//"拜拜了"停止信息发送 } //提供数据源,并将数据封装到用于发送的数据包中 byte[] data = line.getBytes(); DatagramPacket dp = new DatagramPacket(data, data.length, InetAddress.getByName("172.16.1.255"/*这里是发到我的网段的广播地址*/), UdpChatOnline.NetPort); //将数据包通过Socket服务的send方法发送出去 ds.send(dp); } //聊天终止,关闭资源 ds.close(); } catch (Exception e) { e.printStackTrace(); } } } class Rece implements Runnable{ DatagramSocket ds; //使用给定的Socket服务建立用于发送数据的对象 public Rece(DatagramSocket ds){ this.ds = ds; } public void run() { while(true){ //定义用于接收Socket服务的数据包 byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf, buf.length); try { //使用Socket的receive方法接收数据 ds.receive(dp); //从数据包中提取信息 String ip = dp.getAddress().toString(); String data = new String(dp.getData(),0,dp.getLength()); //将有用的信息显示在屏幕上 System.out.println(ip+" : "+data); } catch (Exception e) { e.printStackTrace(); } } //ds.close(); } }
相关文章推荐
- Java网络编程(UDP协议-聊天程序)
- Java网络编程 - 基于UDP协议 实现简单的聊天室程序
- java 网络编程【6】 用UDP编写网络聊天程序 以及 TCP编程实例
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- JAVA 网络编程 UDP(聊天程序)
- 网络编程学习笔记(二)UDP协议及聊天小程序的实现
- java网络编程之Tcp协议下的聊天小程序
- Java网络编程以及简单的聊天程序
- Java网络编程--简单聊天程序
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- Java网络编程以及简单的聊天程序
- Java 网络编程之 (UDP网络聊天程序)
- 26-网络编程-09-网络编程(UDP协议-聊天程序)
- 网络编程-UDP协议---简单聊天室程序
- java中UDP简单聊天程序实例代码
- 使用UDP协议的JAVA网络聊天程序
- Java UDP网络编程 简单实例
- java 网络编程二 UDP传输协议(例:2个进程进行聊天)
- JAVA学习第六十课 — UDP协议 &基于多线程模拟简单的QQ聊天程序
- 使用UDP协议的JAVA网络聊天程序