Java实现UDP通信

UDP通信服务端的建立

package Boradcost;

import java.net.DatagramPacket;
import java.net.DatagramSocket;


public class SeverDemo {
    public static void main(String[] args) throws Exception {
        //建立服务端
        //实现广播的接收

        System.out.println("---服务端启动----");
        //建立服务端接受人
        DatagramSocket sd=new DatagramSocket(8888);

        //建立服务端可接收的容量
        byte[] buff=new byte[1024*64];
        //建立服务端
        DatagramPacket sdp=new DatagramPacket(buff,buff.length);

        while (true) {
            //服务端接收人接收信息
            sd.receive(sdp);
            //定义接收到的消息的长度
            int len=sdp.getLength();
            //将字节信息转换为字符串
            String rs=new String(buff,0,len);
            
            System.out.println("来自:"+sdp.getSocketAddress()+"的"+sdp.getPort()+"端口,发来的:"+rs);
        }
        //System.out.println(new String(buff,0,len));

    }
}

UDP通信客户端的建立

package Boradcost;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

public class ClientDemo {
    //建立客户端

    //实现广播的发送

    //多发多收
    public static void main(String[] args) throws Exception {

        System.out.println("----客户端启动-----");
        //建立客户端用户
        DatagramSocket f=new DatagramSocket();

        Scanner in=new Scanner(System.in);
        //客户端
        /**
         public DatagramPacket(byte buf[], int offset, int length,
                                InetAddress address, int port)
         */

        while (true) {

            System.out.println("请说:");
            String rs=in.nextLine();

            if("exit".equals(rs))
            {
                f.close();
            }
            byte[] buff=rs.getBytes();

            //广播的不同点在于服务器的ip地址变为了局域网内所有服务器
            //建立客户端发送容器
            DatagramPacket dp=new DatagramPacket(buff,buff.length,
                    InetAddress.getByName("255.255.255.255"),8888);

            f.send(dp);
        }


    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值