Socket发送接收消息简单例子

//发送端

package com.lxb.test;


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;


public class UPDSendDemo {


public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub


System.out.println("发送端启动");
/**
* 创建upd传输的发送端
* 将要发送的数据封装到数据包中
* 通过upd的socket服务将数据包发送出去
* 关闭socket服务
*/

//udp socket服务 使用DatagramSocket对象
DatagramSocket ds=new DatagramSocket();

//将要发送的数据封装到数据包中
String str="udp传输显示:哥来了";
//使用DatagramPacket将数据封装到该数据包中
byte[] buf=str.getBytes();

DatagramPacket dp=new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.174.1"), 10000);

ds.send(dp);
ds.close();


}


}


//接收端

package com.lxb.test;


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;


public class UDPReceDemo {


public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.out.println("接收端启动。。。");


/*
* 建立UDP socket服务,必须明确端口号
* 创建数据包,用于存储接收到的数据,方便用数据包的方法解析这些数据
* 使用socket服务的receive方法将接收的数据存储到数据包中
* 通过数据包的方法解析数据包的数据
* 关闭资源
*/
//建立udp socket服务
DatagramSocket ds=new DatagramSocket(10000);

byte[] buf=new byte[1024];
//创建数据包
DatagramPacket dp=new DatagramPacket(buf, buf.length);

//使用接收方法将数据存储到数据包中
ds.receive(dp);

//通过数据包对象的方法,解析其中的数据,比如地址,端口,数据内容
String ip=dp.getAddress().getHostAddress();
int port=dp.getPort();
String text=new String(dp.getData(),0,dp.getLength());
System.out.println(ip+":"+text+":"+port);

ds.close();


}


}

你可能感兴趣的:(Socket发送接收消息简单例子)