首页 > 其他 > 详细

UDP通信

时间:2020-04-27 23:15:02      阅读:56      评论:0      收藏:0      [点我收藏+]

UDP是一种面向无连接的协议,在通信时发送端和接收端不用建立连接。

 

构造方法创建DatagramPacket对象

发送端一定要明确指出数据的目的地(ip地址和端口号)而接收端不需要明确知道数据的来源,只需要接收到数据即可。

 

DatagramSocket()

 

用于创建发送端的DatagramSocket对象

DatagramSocket(int port)

 

创建接收端的DatagramSocket对象

 

 

* 发送端

 

 * 1,创建DatagramPacket对象,封装数据接收的地址和端口

 

 * 2,创建DatagramSocket对象

 

* 3,调用DatagramSocket中的send方法,发送数据

 

 * 4关闭资源DatagramSocket

 

 * UDP接收端

 *

 * 1,创建DatagramSocket对象绑定端口号(要和发送端端口号一致)

 * 2,创建字节数组,接收发来的数据

 * 3,创建数据包对象DatagramPacket

 * 4,调用DatagramSocket对象方法receiveDatagramPacket dp)接收数据,数据放在数据包中

 * 5,拆包

 

 

package com.oracle.demo02;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

import sun.print.resources.serviceui;

//客户端
public class TCPClient {

    public static void main(String[] args) throws IOException, IOException {
        Scanner sc=new Scanner(System.in);
        // 创建客户端对象,明确要连接的服务器所在的ip地址和端口号
        Socket socket=new Socket("127.0.0.1",9999);
        //获取字节输出流
        OutputStream fos=socket.getOutputStream();
        //向服务器写数据
        fos.write(sc.next().getBytes());
        
        //接收服务器响应
        //获取字节输入流
        InputStream fis=socket.getInputStream();
        byte[] bytes=new byte[1024];
        int len=fis.read(bytes);
        //获取ip地址
        String ip=socket.getInetAddress().getHostAddress();
        System.out.println("ip地址为:"+ip+",发送的内容为:"+new String(bytes,0,len));
        socket.close();
    }

}

 

 

package com.oracle.demo02;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

//服务器端
public class TCPserver {

    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        // 创建服务器对象,明确端口号
        ServerSocket server=new ServerSocket(9999);
        //和客户端创建联系
        Socket socket=server.accept();
        //获取字节输入流
        InputStream fis=socket.getInputStream(); 
        byte[] bytes=new byte[1024];
        int len=fis.read(bytes);
        //获取客户端ip
        String ip=socket.getInetAddress().getHostAddress();
        System.out.println("ip地址为:"+ip+",发送的内容为:"+new String(bytes,0,len));
        //回复客户端
        //获取字节输出流
        OutputStream fos=socket.getOutputStream();
        fos.write(sc.next().getBytes());
        //释放资源
        server.close();
        
    }

}

 

 

 

UDP通信

原文:https://www.cnblogs.com/longmingyeyu/p/12790700.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!