网络编程(UPD和TCP)

//发送数据

java 复制代码
//UDP协议发送数据
package com.example.mysocketnet.a02UDPdemo;

import java.io.IOException;
import java.net.*;

public class SendMessageDemo {

    public static void main(String[] args) throws IOException {
        //发送数据
        
        //1.创建DatagramSocket对象(快递公司)
        //细节:
        //绑定端口,以后我们就是通过这个端口往外发送数据
        //空参:所有可用的端口中随机一个进行使用
        //有参:指定端口号进行绑定
        DatagramSocket datagramSocket = new DatagramSocket();

        //2.打包数据
        String str = "你好....";
        byte[] bytes =str.getBytes();
        InetAddress address = InetAddress.getByName("127.0.0.1");
        int port = 10086;
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length,address,port);
        //3.发送数据
        datagramSocket.send(datagramPacket);
        /***
         * UDP协议是面向无连接的   (我管你有没有建立 我直接发就行 不管你收不收的到)
         */
        //4.释放资源
        datagramSocket.close();
    }
}

接收数据

java 复制代码
//接收数据
package com.example.mysocketnet.a02UDPdemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class ReceiveMessageDemo {
    public static void main(String[] args) throws IOException {
        //接收收据

        //1.创建DatagramSocket对象(快递公司)
        //细节
        //在接收的时候,一定要绑定端口
        //而且绑定的端口,一定要和发送的端口保持一致
        DatagramSocket ds = new DatagramSocket(10086);
        //2.接收数据包
        byte[]  bytes = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes,bytes.length);

        /**
         * 该方法是阻塞的
         * 程序执行到这一步的时候,会在这里死等
         * 等发送端发送消息
         */
        ds.receive(dp);

        //3.解析数据包
        byte[] data = dp.getData();
        int length = dp.getLength();
        int port = dp.getPort();
        InetAddress address = dp.getAddress();

        System.out.println("接收到数据"+new String(data,0,length));
        System.out.println("该数据是从"+address+"这台电脑中的"+port+"发出的");

        //4.释放资源
        ds.close();

    }
}

运行结果:

相关推荐
学编程就要猛11 分钟前
JavaEE初阶:网络原理-HTTP(下)
网络·网络协议·http
xiaohe0731 分钟前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#
pc079334 分钟前
带网络接口的打印机和USB接口打印机的共享区别
运维·服务器·网络
汤愈韬36 分钟前
Full Cone NAT、行为模式
网络·网络协议·网络安全·security
Agent手记37 分钟前
首件检验流程繁琐,耗时久还容易出现合规漏洞怎么办?——基于实在Agent的AI+超自动化全流程闭环实战
网络·人工智能·ai·自动化
达不溜的日记1 小时前
PDUR路由基本功能
网络·stm32·单片机·嵌入式硬件·mcu·51单片机·信息与通信
蓝天居士1 小时前
Linux网络驱动之Fixed-Link(29)
linux·运维·网络
切糕师学AI1 小时前
家庭网络“双网关”现象解析与通用桥接配置指南
网络·网关
计算机安禾1 小时前
【计算机网络】第2篇:端到端通信的形式化刻画——时延、带宽、丢包与吞吐量的数学模型
网络·计算机网络
灰子学技术2 小时前
Envoy TCP 层面的 Metric 指标分析
开发语言·网络·网络协议·tcp/ip·php