网络编程-udp通信

来源:互联网 发布:java 垃圾回收器 编辑:程序博客网 时间:2024/04/30 23:47

网络编程-udp通信


package com.it.www;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;class Send implements Runnable{private DatagramSocket datagramSocket ;Send(DatagramSocket datagramSocket){this.datagramSocket = datagramSocket;}@Overridepublic void run() {// TODO Auto-generated method stubtry {//创建一个字符输入流InputStreamReader in = new InputStreamReader(System.in);//创建一个包装类,把字符流放到缓存中BufferedReader buff  = new BufferedReader(in);String line = null;while((line = buff.readLine()) != null){if("885".equals(line))break;byte[] dataLine = line.getBytes();// 字符串数据转化为字节数据DatagramPacket datagramPacket = new DatagramPacket(dataLine, dataLine.length, InetAddress.getByName("127.0.0.1"), 10001);datagramSocket.send(datagramPacket);}datagramSocket.close();} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException("发送端失败");}}}class Receive implements Runnable{DatagramSocket datagramSocket ;public Receive(DatagramSocket datagramSocket) {// TODO Auto-generated constructor stubthis.datagramSocket = datagramSocket;}@Overridepublic void run() {// TODO Auto-generated method stubtry {while(true){byte[] data = new byte[1024];//声明一个字节包,用来存放接收对方的数据DatagramPacket datagramPacket =new DatagramPacket(data, data.length);//通古socket服务将收到的数据存到数据包中datagramSocket.receive(datagramPacket);//获取对方的主机地址System.out.println(datagramPacket.getAddress().getHostAddress());//获取对方发送的数据String dataString = new String(datagramPacket.getData(),0,datagramPacket.getLength());System.out.println("dataString ="+dataString);}} catch (Exception e) {// TODO: handle exceptionthrow new RuntimeException("接收失败");}}}public class UdpCommunicate{public static void main(String[] args) throws Exception {DatagramSocket sendDatagramSocket = new DatagramSocket();DatagramSocket receivedDatagramSocket = new DatagramSocket(10001);new Thread(new Send(sendDatagramSocket)).start();new Thread(new Receive(receivedDatagramSocket)).start();}}

0 0
原创粉丝点击