前言
生活中经常会收到骚扰电话和骚扰短信,骚扰电话可以抽象的理解为TCP,而骚扰短信可以抽象的理解为UDP。我只要知道你的地址,不管你愿不愿意接收,发送是否成功,我都可以直接进行发送~
一、UDP实现发送消息
客户端代码模拟:
/**
* 客户端
*/
public class UdpClient {
public static void main(String[] args) throws Exception{
//建立socket的同时也给自己绑定一个端口为8888
DatagramSocket socket = new DatagramSocket(8888);
//数据包,这里可以从控制台拿到
//String msg = "你好,先生,首付8.8万的江北新区大三房考虑嘛?";
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while (true){
//获取控制台的数据并且将其转为字节数组
byte[] msg = bufferedReader.readLine().getBytes();
//发送给谁?
InetAddress ip = InetAddress.getByName("127.0.0.1");
int port = 7777;
//参数分别是,数据包,起始位置,结束位置,ip,端口
DatagramPacket packet = new DatagramPacket(msg,0,msg.length,ip,port);
//开始发送
socket.send(packet);
//如果对方发送 拜拜 我们就断开
if (bufferedReader.readLine().equals("拜拜")){
break;
}
}
//关闭连接
socket.close();
}
}
服务端代码模拟:
/**
* 服务端
*/
public class UdpServer {
public static void main(String[] args) throws Exception{
//开发端口
DatagramSocket socket = new DatagramSocket(7777);
//接收数据包
byte[] buffer = new byte[1024];
while (true){
DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);
socket.receive(packet); //阻塞接收
byte[] bytes = packet.getData();
String msg = new String(bytes,0,bytes.length);
System.out.println(msg);
//断开连接
if (msg.equals("拜拜")){
break;
}
}
//关闭连接
socket.close();
}
}
客户端执行结果:
服务端执行结果:
至此,骚扰短信的基本功能已经实现,其实可以实现双向聊天的。在此就不展开说了~
Java网络编程扩展:Java网络编程学习汇总
路漫漫其修远兮,吾必将上下求索~
如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧**转载请注明出处哦**