发短信:不用连接,但需要知道对方的地址,客户端、服务端没有明确的界限,可以说没有客户端、服务端一说。
发送端
package lesson03;
import java.net.datagrampacket;
import java.net.datagramsocket;
import java.net.inetaddress;
/**
* 发送端
*/
public class udpclientdemo1 {
public static void main(string[] args) throws exception {
//1、建立一个 socket
datagramsocket socket = new datagramsocket();
/**
* 2、建个包
*/
//需要发送的消息
string msg = "你好啊,服务器!";
//发送地址
inetaddress localhost = inetaddress.getbyname("localhost"); //主机
//发送端口
int port = 9090;
/**
* 五个参数:
* @param buf msg.getbytes():需要发送的数据包
* @param offset 0:数据偏移量
* @param length msg.getbytes().length:数据长度
* @param address localhost:目标地址
* @param port port:目标端口
*/
datagrampacket packet = new datagrampacket(msg.getbytes(), 0, msg.getbytes().length, localhost, port);
//3、发送包
socket.send(packet);
//4、关闭流
socket.close();
}
}
接收端
package lesson03;
import java.net.datagrampacket;
import java.net.datagramsocket;
/**
* 接收端
*/
public class udpserverdemo1 {
public static void main(string[] args) throws exception {
//开放端口
datagramsocket socket = new datagramsocket(9090);
//接收数据包
byte[] buffer = new byte[1024];
datagrampacket packet = new datagrampacket(buffer, 0, buffer.length);
//接收
socket.receive(packet); //阻塞接收
//输出数据包地址
system.out.println(packet.getaddress().gethostaddress());
/**
* 输出数据包数据
* packet:data 类型
* 通过构造器转成 string 类型:new string();
*/
system.out.println(new string(packet.getdata(), 0, packet.getlength()));
//关闭连接
socket.close();
}
}
以上就是java 基于udp协议实现消息发送的详细内容,更多关于java 消息发送的资料请关注萬仟网其它相关文章!
希望与广大网友互动??
点此进行留言吧!