Java笔记网络编程-socket编程(UDP连接)

一.简述

  1. UDP传输:UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
  2. UDP和TCP对比
UDP TCP
将数据源和目的封装成数据报中,不需要建立连接 建立连接,形成传输数据的通道
每个数据报的大小在限制在64k 在连接中进行大数据量传输
因无需连接,是不可靠协议 通过三次握手完成连接,是可靠协议
不需要连接,速度快 必须建立连接,效率会稍低

二.编程步骤

  1. DatagramSocket与DatagramPacket建立发送端和接收端
  2. 建立发送包,调用Socket的发送接收方法
  3. 关闭Socket
  4. 发送端与接收端是两个独立的程序

三.简单实例

接收端

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

public class Main_10_26_server {
    public static void main(String[] args) throws IOException {

        //1、 构件服务端 +端口
        DatagramSocket server=new DatagramSocket(8888);
        //2、封装成包 DatagramPacket(byte[] buf,int lenth)  相当于构建接受池
        byte[] container=new byte[1024];
        DatagramPacket datagramPacket=new DatagramPacket(container, container.length);
        //接收客户端发来的数据
        server.receive(datagramPacket);
        //获取接收到的数据
        byte [] data=datagramPacket.getData();
        //获取接收到的数据的长度
        int len=datagramPacket.getLength();
        //输出相关的信息
        System.out.println(new String(data,0,len));
        //关闭接收流
        server.close();

    }

}

发送端

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

public class Main_10_26_client {
    public static void main(String[] args) throws IOException {

        DatagramSocket datagramSocket=new DatagramSocket(9999);//创建udp套接字
        String meString="连接成功";
        byte[] bs=meString.getBytes();
        DatagramPacket datagramPacket=new DatagramPacket(bs, bs.length,new InetSocketAddress("localhost",8888));
        datagramSocket.send(datagramPacket);
        datagramSocket.close();

    }

}

运行结果:

Java笔记网络编程-socket编程(UDP连接)_第1张图片

你可能感兴趣的:(Java笔记,java,开发语言,后端,tcp/ip,网络协议)