网络编程udp发送接收

发送端

package com.dyjava21;
import java.io.*;
import java.lang.String;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class Test {
    public void sy() {
        DatagramSocket x=null;
        try {
            x=new DatagramSocket();//  1.定义udp协议数据报对象
            byte[] b="nihaobeijing".getBytes(); //5.发送文字string类型转为 定义的数组
            InetAddress s = InetAddress.getByName("127.0.0.1"); //4.为ip对象新建(inetaddress是没法直接new,需要调静态方法getbyname(参数为string类型的ip地址))
            DatagramPacket m=new DatagramPacket(b,b.length,s,7777); //3.填写满足需求的m类型,参数为(数组,数组长度,ip对象,端口号) 
                x.send(m);          //2.用udp数据报对象调send方法,参数变量为m
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(null!=x){
                x.close();
            }
        }
    }
    public static void main(String[] args) {
Test a=new Test();
a.sy();
    }
}

接收端

package com.dyjava21;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Socket;
import java.net.SocketException;

public class Out {
    public void cf(){
        DatagramSocket d= null;
        try {
            d = new DatagramSocket(7777);  //1定义数据报对象;
            byte[] b=new byte[1024];    //定义接收数组b 这里取得的数组包含除了数据之外还有很多附加的信息
            DatagramPacket m=new DatagramPacket(b,0,b.length);// 3.定义m
            d.receive(m);//2接收包m
            byte[] t = m.getData();//m调用getdata得到的数组才是扒掉附加信息后真正的包含数据的数组,
            String ss=new String(t,0,t.length); //数组t转换为string类型
            System.out.println(ss);       
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(null!=d){
                d.close();
            }
        }
    }
    public static void main(String[] args) {
        Out sss=new Out();
        sss.cf();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值