DatagramSocket客户端与服务端Java实例

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 import java.net.InetAddress;
 5 
 6 public class TimeClient_UDP{
 7      public static void main(String args[]) throws IOException{
 8          String host = "localhost";
 9          byte[] msg = new byte[256];//存放收发数据
10          InetAddress addr = InetAddress.getByName(host);//获取主机地址
11          System.out.println("侦听主机为:"+addr);
12          DatagramPacket packet = new DatagramPacket(msg,msg.length,addr,3000);//创建要收发的数据报
13          DatagramSocket socket = new DatagramSocket();//创建用于通信的Socket对象
14          socket.send(packet);//发送数据报
15          packet = new DatagramPacket(msg,msg.length);//创建接收的数据报
16          socket.receive(packet);//接收数据报,存放到packet中
17          String time = new String(packet.getData());//获取数据报中的数据内容
18          System.out.println("侦听主机:"+host+"的当前日期为:"+time);
19          socket.close();//释放Socket
20     }
21 }
DatagramSocket客户端
 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 import java.net.InetAddress;
 5 import java.util.Date;
 6 public class TimeServer_UDP{
 7      public static void main(String args[]) throws IOException{
 8           DatagramSocket socket = new DatagramSocket(3000);//Socket对象.端口3000
 9           System.out.println("等待接收数据......");
10           while(true){
11                byte buf[] = new byte[256];
12                DatagramPacket packet = new DatagramPacket(buf,buf.length);
13                socket.receive(packet);
14                
15                InetAddress addr = packet.getAddress();
16                int port = packet.getPort();
17                System.out.println("已接收来自" + addr.toString() + ":"+port+"的数据");
18                
19                String date = new Date().toString();
20                buf = date.getBytes();
21                packet = new DatagramPacket(buf,buf.length,addr,port);
22                socket.send(packet);
23           }
24      }
25 }
DatagramSocket服务端

DatagramSocket客户端java project工程目录为E:\EclipseProject\TimeClient_UDP。

DatagramSocket服务端java project工程目录为E:\EclipseProject\TimeServer_UDP。

在Windows系统的dos命令行cmd中运行的步骤:

1、配置系统环境变量

JAVA_HOME(添加存放jdk的目录)  C:\Program Files\Java\jdk1.8.0_65

Path(添加jdk目录下的bin子目录)  %JAVA_HOME%\bin

classpath(添加jdk目录下的lib子目录里需要的包)  .;%JAVA_HOME%\jre\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

2、打开两个dos窗口,分别进入DatagramSocket客户端与服务端的工程目录(上述目录)

3、将源码通过javac 工程名,编译出.class文件;再java 工程名,运行

4、步骤2,3详见图1DatagramSocket客户端运行效果;图2DatagramSocket服务端运行效果。

 

转载于:https://www.cnblogs.com/LideAiYaner-1wn/p/5293907.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值