> Java > java지도 시간 > 본문

Java에서 UDP 전송을 시뮬레이션하는 발신자와 수신자의 예에 대한 자세한 설명

黄舟
풀어 주다: 2017-03-28 10:18:10
원래의
1954명이 탐색했습니다.

이 글에서는 주로 Java에서 시뮬레이션된 UDP 전송의 송신자와 수신자의 자세한 예에 대한 관련 정보를 소개합니다. 필요한 친구는

Java에서 시뮬레이션된 UDP 전송의 송신자와 수신자를 참조할 수 있습니다. 수신단 인스턴스 상세 설명

1. UDP 전송 송신단 생성

1. UDP 소켓 서비스를 구축합니다. >
2. 전송할 데이터를 데이터 패킷으로 캡슐화합니다.


3. UDP 소켓 서비스를 통해 데이터 패킷을 보냅니다.


4. 소켓 서비스.

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

public class UDPSend {

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

  System.out.println("发送端启动......");

  // 1、创建UDP的Socket,使用DatagramSocket对象
  DatagramSocket ds = new DatagramSocket();

  // 2、将要发送的数据封装到数据包中
  String str = "UDP传输演示:I'm coming!";

  byte[] buf = str.getBytes(); //使用DatagramPacket将数据封装到该对象的包中

  DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.191.1"), 10000);

  // 3、通过UDP的Socket服务将数据包发送出去,使用send方法
  ds.send(dp);

  // 4、关闭Socket服务
  ds.close();
 }
}
로그인 후 복사

2. UDP 전송을 위한 수신단 생성

1. UDP 소켓 서비스를 설정해야 합니다.


2. 데이터 패킷 개체 방식을 사용하여 수신된 데이터를 저장하고 데이터를 쉽게 분석할 수 있는 데이터 패킷을 만듭니다.


3. 소켓 서비스 데이터를 수신하여 데이터 패킷에 저장합니다.


4. 데이터 패킷 방식을 통해 데이터를 구문 분석합니다.


5.

rree

3. UDP 전송의 송수신 끝을 최적화

처음 두 부분에서는 한 번에 하나의 메시지만 보내거나 받을 수 있습니다. , 그런 다음 서비스를 종료하세요! 따라서 여러 메시지를 보내려면 송신 측에서 보낸 내용을 지속적으로 수정해야 하고 서버를 다시 시작해야 하는데 이는 상당히 번거로운 작업입니다. 위의 단점을 극복하기 위해 다음과 같이 최적화할 수 있습니다.


1. 전송 측에서 BufferedReader를 만들고 키보드에서 내용을 입력합니다. 2. 수신 측에서는 while(ture) 루프를 추가하여 루프의 콘텐츠를 지속적으로 수신합니다.

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

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

  System.out.println("接收端启动......");

  // 1、建立UDP的Socket服务
  DatagramSocket ds = new DatagramSocket(10000);

  // 2、创建数据包
  byte[] buf = new byte[1024];
  DatagramPacket dp = new DatagramPacket(buf, buf.length);

  // 3、使用接收方法将数据存储到数据包中
  ds.receive(dp); // 该方法为阻塞式的方法

  // 4、通过数据包对象的方法解析这些数据,例如:地址、端口、数据内容等
  String ip = dp.getAddress().getHostAddress();
  int port = dp.getPort();
  String text = new String(dp.getData(), 0, dp.getLength());

  System.out.println(ip + ":" + port + ":" + text);

  // 5、关闭Socket服务
  ds.close();
 }
}
로그인 후 복사
rrree


4. 채팅방 만들기

UDP(User Datagram Protocol, User Datagram Protocol)의 관련 속성에 따라 간단한 UDP를 추가로 만들 수 있습니다. 기반 전송 계약에 따른 채팅방은 대화형 채팅 기능을 구현합니다.

아아아아아아아아아

위 내용은 Java에서 UDP 전송을 시뮬레이션하는 발신자와 수신자의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿