基于udp的socket编程小例子之使用多线程进行通信
2015-10-28 16:52
726 查看
package udpDemo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class Send implements Runnable{ private DatagramSocket ds; 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 dg=new DatagramPacket(data,data.length,InetAddress.getByName("10.5.83.255"),10001); this.ds.send(dg); } } catch (IOException e) { // TODO Auto-generated catch block System.out.println("发送端失败....."); e.printStackTrace(); } } }
package udpDemo; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class Rece implements Runnable{ private DatagramSocket ds; public Rece(DatagramSocket ds) { this.ds=ds; } public void run() { byte []data=new byte[1024]; DatagramPacket dp=new DatagramPacket(data,data.length); while(true) { try { ds.receive(dp); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String ip= dp.getAddress().getHostAddress();//获取ip地址 String line=new String(data,0,dp.getLength()); System.out.println("ip:"+ip+",data:"+line); } } }
package udpDemo; import java.net.DatagramSocket; import java.net.SocketException; /* 编写聊天程序,有收数据的部分, 和发数据的部分。 需要用到多线程技术,一个线程负责收,另外一个线程负责收 因为收和发动作 是不一致的,所以定义两个run方法。 */ public class chartDemo { public static void main(String[] args) { try { DatagramSocket sendsocket=new DatagramSocket(); DatagramSocket recesocket=new DatagramSocket(10001); new Thread(new Send(sendsocket)).start(); new Thread(new Rece(recesocket)).start(); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- 网页禁止右键、禁止查看源代码、禁止复制和另存为的代码
- Zend studio 5.5 编辑器设置 默认编码
- 2个很有实用价值的神奇代码
- JDK环境变量配置
- ThinkPHP 1.5 使用 Smarty 模板的方法
- delphi一些语法
- asp 读取记录 从指定第几条读到几条 方法
- 突然发现用PHP做多条件模糊查询很简单
- PHP转义函数
- asp 不支持Response.CharSet的时候用下面转码
- Python-os与shutil对文件和文件夹的操作
- Java Swing模拟按键事件
- C# 发送邮件
- .net-c# 获取机器码
- 【PHP】创建文件夹及子文件夹无法创建的解决办法
- PHP split 函数
- php类似js indexof与lastindexof的方法
- Java:IO流之字节流InputStream、OutputStream详解
- python--随机函数(random,uniform,randint,randrange,shuffle,sample)
- Python语句概述20