>  기사  >  Java  >  java-udp를 사용하여 간단한 전송 및 수신 수행

java-udp를 사용하여 간단한 전송 및 수신 수행

little bottle
little bottle원래의
2019-04-09 09:59:472596검색

이 기사에서는 udp를 사용하여 Java에서 간단한 보내기 및 받기를 수행하는 방법에 대해 설명합니다.

Code 1: Sender-demo2Sender.java

package udp;

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

자바 네트워크 통신 업계에서는 소켓(socket) 통신이라고 하며, 통신에 필요한 두 장치 모두 소켓이 설치되어 있어야 합니다.

프로토콜마다 소켓이 다릅니다(Socket)

UDP 통신 프로토콜의 특징:

1. 데이터를 데이터 패킷으로 캡슐화하고, 비연결형을 지향합니다. ... 단말기의 경우 송신측과 수신측만 구분됩니다.

예: 자산 관리 무전기, FeiQ 채팅, 게임...

udp 프로토콜 하의 소켓:

DatagramSocket(udp 소켓 서비스)

DatagramPacket(데이터 패킷 클래스)

DatagramPacket(buf, 길이 , 주소, 포트)                                                                                                                       .

주소: 전송된 대상 IP 주소 개체

포트: 포트 번호.

발신자 사용 단계:

1. UDP 서비스를 설정합니다.

2. 데이터를 준비하고 데이터 패킷에 데이터를 캡슐화하여 보냅니다. 송신측의 데이터 패킷에는 IP 주소와 포트 번호가 있어야 합니다.

3. udp 서비스를 호출하고 데이터를 보냅니다.

4. 리소스를 닫습니다.

/发送端
@SuppressWarnings("unused")
public class demo1Sender {

    public static void main(String[] args) throws IOException {
        //建立udp的服务
        DatagramSocket datagramSocket = new DatagramSocket();
        //准备数据,把数据封装到数据包中。
        String data = "这个是我第一个udp的例子..";
        //创建了一个数据包
        DatagramPacket packet = new DatagramPacket(data.getBytes(), data.getBytes().length,InetAddress.getLocalHost() , 9090);
        //调用udp的服务发送数据包
        datagramSocket.send(packet);
        //关闭资源 ---实际上就是释放占用的端口号
        datagramSocket.close();

    }

}

Code 2: Receiver-demo1Receive.java

package udp;

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

수신기 사용 단계

1. UDP 서비스 설정

2. 데이터를 수신할 빈 데이터 패킷을 준비합니다.
3. 데이터를 수신하려면 udp 서비스를 호출하세요.

4. 리소스 닫기

public class demo1Receive {

    public static void main(String[] args) throws IOException {
        //建立udp的服务 ,并且要监听一个端口。
        DatagramSocket  socket = new DatagramSocket(9090);

        //准备空的数据包用于存放数据。
        byte[] buf = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length); // 1024
        //调用udp的服务接收数据
        socket.receive(datagramPacket); //receive是一个阻塞型的方法,没有接收到数据包之前会一直等待。 数据实际上就是存储到了byte的自己数组中了。
        System.out.println("接收端接收到的数据:"+ new String(buf,0,datagramPacket.getLength())); // getLength() 获取数据包存储了几个字节。
        System.out.println("receive阻塞了我,哈哈");
        //关闭资源
        socket.close();
    }
}
[추천 과정:

Java 비디오 튜토리얼

]


위 내용은 java-udp를 사용하여 간단한 전송 및 수신 수행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.