首页 > 其他 > 详细

网络编程UDP Demo1

时间:2018-07-30 00:52:06      阅读:213      评论:0      收藏:0      [点我收藏+]

!!!这是循环打印的输入的内容,如果要循环输入的话,一定要记得切换线程来输入,要不不管用的

package 网络编程UDP;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class UDPClient {
    public static void main(String[] args) {
        DatagramSocket ds = null;
        try {
            // 创建客户端的套接字对象
            ds = new DatagramSocket();
            // 定义一个发送的内容
//            字符串.getBytes()将字符串转换为字节数组
            byte[] bs = "你好".getBytes();
            // 创建要发送的目的的IP地址也可以是本机的名字也可以是192.168.1.102(本人电脑)
            InetAddress is = InetAddress.getByName("MSI");
            // 打数据包
            DatagramPacket dp = new DatagramPacket(bs, bs.length, is, 10005);
            // 发送数据
            ds.send(dp);

        } catch (SocketException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (ds != null) {
                ds.close();
            }
        }

    }
}
package 网络编程UDP;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class UDPServer {
    public static void main(String[] args) {
        DatagramSocket ds = null;
        try {
            //创建UDP服务器端的对象,必须制定端口8000以前的都被占用了,建议是10000以后 的
            ds = new DatagramSocket(10005);
            //定义接收数据的字节数组
            byte[] bs = new byte[1024];
            //定义接收的数据包
            DatagramPacket dp = new DatagramPacket(bs,bs.length);
            System.out.println("服务器已经启动");
            ds.receive(dp);
            //获得发送端的IP
            InetAddress ia = dp.getAddress();
            //获取数据包中的数据
            byte[] bs1 = dp.getData(); 
            //获得接收数据的长度(实际接收的长度)
            int len = dp.getLength();
            //组装接收的数据
            String data = new String(bs1,0,len);
            System.out.println(ia.getHostAddress()+"接收了"+data);
            
            
            
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            if(ds!=null) {
                ds.close();
            }
        }
        
        
    }
}

 

---恢复内容结束---

网络编程UDP Demo1

原文:https://www.cnblogs.com/java-jiangtao-home/p/9388344.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!