博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UDP接收端和发送端_Socket编程
阅读量:6441 次
发布时间:2019-06-23

本文共 4273 字,大约阅读时间需要 14 分钟。

  • UDP接收端


 

    1. 接收端启动文件
1 import java.net.DatagramSocket; 2 import java.net.SocketException; 3  4 public class Server { 5  6     public static void main(String[] args){ 7          8         try { 9             10             DatagramSocket socket = new DatagramSocket(9999);11             ServerThread sThread = new ServerThread(socket);12             sThread.start();13             14         } catch (SocketException e) {15             16             e.printStackTrace();17         }       21     }  24 }

 

    1. 接收端线程文件
1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 import java.net.InetAddress; 5 import java.net.SocketException; 6  7 public class ServerThread extends Thread{ 8  9     DatagramSocket socket = null;10     11     public ServerThread(DatagramSocket socket) {12         super();13         this.socket = socket;14     }15     16     @Override17     public void run() {18         super.run();19         20         try {21 //            socket = new DatagramSocket(9999);22             23             //建立数据包24             byte []buf = new byte[1024];25             DatagramPacket packet = new DatagramPacket(buf, buf.length);26             System.out.println( "服务器开始运行...." );27             while(true) {28                 29                 //接收客户端数据30                 socket.receive(packet);31                 32                 //读取数据包的内容33                 String data = new String(buf, 0, packet.getLength());34                 System.out.println("我是服务器,接收到客户端的消息:"+data);35                 36                 //发送,先获取客户端信息37                 InetAddress address = packet.getAddress();38                 int port = packet.getPort();39                 byte []str = "服务器响应:你好".getBytes();40                 DatagramPacket packet2 = new DatagramPacket(str, str.length,address,port);41                 socket.send(packet2);42                 43             }44             45         } catch (SocketException e) {46             e.printStackTrace();47         } catch (IOException e) {48             // TODO Auto-generated catch block49             e.printStackTrace();50         }51         finally {52             socket.close();53         }54         55     }56 }

 

  • UDP发送端

 


 

1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 import java.net.InetAddress; 5 import java.net.SocketException; 6 import java.text.SimpleDateFormat; 7 import java.util.Date; 8 import java.util.Scanner; 9 10 public class Client {11 12     public static void main(String[] args) throws IOException{13         14         DatagramSocket socket = null;15         16         try {17             18             socket = new DatagramSocket();//udp不用端口号19             20             while(true) {21                 //时间22                 Date myDate = new Date();23                 SimpleDateFormat dFormat = new SimpleDateFormat("HH:mm:ss");24                 //发送信息25                 InetAddress address = InetAddress.getLocalHost();//取得服务器地址26                 int port = 9999;27                 28                 Scanner input = new Scanner(System.in);//改为输入发送29                 String inContent ="\r\n" +  dFormat.format(myDate) + "\r\n" +"黄哥哥说:"+ input.next();30                 31                 byte []str = inContent.getBytes();32                 DatagramPacket packet2 = new DatagramPacket(str, str.length,address,port);//InetAddress.getByName( "192.168.4.198" )33                 socket.send(packet2);34                 35                 //接收信息36                 //建立数据报包37                 byte []buf = new byte[1024];38                 DatagramPacket packet = new DatagramPacket(buf, buf.length);39                 40                 //接收服务器信息41                 socket.receive(packet);42                 43                 //读取数据包的内容44                 String data = new String(buf, 0, packet.getLength());45                 System.out.println(data);46                 47             }48         } catch (SocketException e) {49             // TODO Auto-generated catch block50             e.printStackTrace();51         }finally {52             //关闭53             socket.close();54         }55         56     }57 }

 

 

 

  • 运行效果


 

  1. 发送端发送消息,接收端回应

2.接收端收到的消息

转载于:https://www.cnblogs.com/ynhwl/p/9434219.html

你可能感兴趣的文章
Mysql修改存储过程相关权限问题
查看>>
4.2权限管理
查看>>
彻底理解ThreadLocal
查看>>
Node.js~ioredis处理耗时请求时连接数瀑增
查看>>
企业如何走出自己的CRM非常之道?
查看>>
整合看点: DellEMC的HCI市场如何来看?
查看>>
联合国隐私监督机构:大规模信息监控并非行之有效
查看>>
韩国研制出世界最薄光伏电池:厚度仅为人类头发直径百分之一
查看>>
惠普再“卖身”,软件业务卖给了这家鼻祖级公司
查看>>
软件定义存储的定制化怎么走?
查看>>
“上升”华为碰撞“下降”联想
查看>>
如何基于Spark进行用户画像?
查看>>
光伏发电对系统冲击大 “十三五”电力规划重点增强调峰能力
查看>>
全球19家值得关注的物联网安全初创企业
查看>>
Android下的junit 单元测试
查看>>
这几个在搞低功耗广域网的,才是物联网的黑马
查看>>
主流or消亡?2016年大数据发展将何去何从
查看>>
《大数据分析原理与实践》一一第3章 关联分析模型
查看>>
《挖掘管理价值:企业软件项目管理实战》一2.4 软件设计过程
查看>>
Capybara 2.14.1 发布,Web 应用验收测试框架
查看>>