美文网首页
网络编程--基于UDP的Socket编程

网络编程--基于UDP的Socket编程

作者: 鉴闻俗说 | 来源:发表于2018-01-24 14:07 被阅读0次

1、使用无连接的数据报(UDP)进行通信

(1)什么是Datagram?
  • 数据报是网上传输的独立数据包,数据报是否能够正确地到达目的地,到达的时间,顺序,内容的正确性均没有保障。
(2)Java中使用Datagram与DatagramPacket类来完成数据报(UDP)进行通信。
(3)DatagramSocket类利用UDP协议来实现客户与服务器的Socket。
(4)send:发送数据报
(5)recieve:接收数据报

2、基于UDP的Socket编程

本个示例包含两端代码:UDPServer和UDPClient。UDPServer先启动,并等待UDPClient和自己打招呼。当UDPClient和自己打招呼后,UDPServer回应UDPClient。具体代码如下:
(1)UDPServer

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

/**
 * 使用UDP进行通信
 * 服务端
 * @author Chuan
 *
 */
public class UDPServer
{
    public static void main(String[] args) throws IOException
    {
        DatagramSocket ds = new DatagramSocket(5000);
        
        /*
         * 接收客户端的消息
         */
        //创建用于接收客户端发送的数据报的数据报
        byte[] buffer = new byte[1024];
        DatagramPacket packetRec = new DatagramPacket(buffer, buffer.length);
        ds.receive(packetRec);
        //处理接收到的数据
        String msg = new String(buffer, 0, packetRec.getLength()); //packetRec.getLength()
        System.out.println(msg);
        
        /*
         * 向客户端发送消息
         */
        byte[] str = "welcom".getBytes();
        DatagramPacket packetSend = new DatagramPacket(str, str.length, 
                packetRec.getAddress(),packetRec.getPort());
        ds.send(packetSend);
        
        //关闭socket
        ds.close();
    }
}

(2)UDPClient

/**
 * 使用UDP进行通信
 * 客户端
 * @author Chuan
 *
 */
public class UDPClient
{
    public static void main(String[] args) throws IOException
    {
        DatagramSocket dS = new DatagramSocket();
        
        /*
         * 向服务端发送消息
         */
        byte[] str = "hello".getBytes();
        DatagramPacket dpSend = new DatagramPacket(str, str.length, 
                InetAddress.getByName("localhost"),5000);
        dS.send(dpSend);
        
        /*
         * 接收服务端的消息
         */
        byte[] msg = new byte[1024];
        DatagramPacket dpRecieve = new DatagramPacket(msg, msg.length);
        dS.receive(dpRecieve);
        System.out.println(new String(msg, 0, dpRecieve.getLength()));
        
        dS.close();
    }
}

相关文章

  • 网络编程

    网络 Socket 基于TCP协议的Socket编程 基于UDP协议的Socket编程

  • Java socket

    Java Socket实现基于TCP和UDP多线程通信Java Socket编程

  • 网络编程--基于UDP的Socket编程

    1、使用无连接的数据报(UDP)进行通信 (1)什么是Datagram? 数据报是网上传输的独立数据包,数据报是否...

  • Day18总结

    一.网络通信过程TCP协议和UDP协议二.socket编程 1.socket编程定义:socket又叫套接字。指的...

  • 网络基础介绍

    网络编程的两种 TCP socket编程,是网络编程的主流。之所以叫Tcp socket编程,是因为底层是基于Tc...

  • Java中的UDP编程

    Java中的UDP编程 Java为我们提供了DatagramSocket对象作为基于UDP协议的Socket,可以...

  • 趣谈网络协议干货-Socket

    Socket是基于TCP和UDP协议的编程。Socket编程进行的是端到端的通信,往往意识不到中间经过多少局域网,...

  • 第78节:Java中的网络编程(上)

    第78节:Java中的网络编程(上) 前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通...

  • python10-socket

    socket网络编程 socket基于tcp、ip协议的工具 所有的网络通信都基于socketwanghzh/p/...

  • Socket UDP网络编程

    UDP介绍 UDP不属于面向连接的通信,在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人十分不满意的环境...

网友评论

      本文标题:网络编程--基于UDP的Socket编程

      本文链接:https://www.haomeiwen.com/subject/wwzyaxtx.html