UDP 프로토콜 기반 Socket 간단한 인스턴스
UDP 프로토콜 기반 Socket 간단한 인스턴스
두 가지 클래스 DatagramPacket 사용 - 데이터 팩 DatagramSocket 표시 - 완벽한 커뮤니케이션 클래스를 나타냅니다.
서비스 사이드 4단계 1, 서비스 사이드 IP 포트 데이터 내용 정의 2, DategramPacket 패키지 대상 만들기 데이터 내용 포함 3, DategramSocket 대상 만들기 4, socket.send()로 보내기;
UdpSocketServer 코드
package com.chen.study.socket.socketServer;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UdpSocketServer {
private static int port = 12000;
/**
* UDPsocket
*/
public static void UdpSocketServer(){
try {
//1.
DatagramSocket socket = new DatagramSocket(port);
System.out.println("UDPsocket .....");
//2. ,
byte[] data = new byte[1024];
DatagramPacket packet = new DatagramPacket(data, data.length);
//3.
socket.receive(packet);//
//4.
String info = new String(data, 0,packet.getLength());
System.out.println(" , :"+info);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
UdpSocketServer();
}
}
클라이언트
1. IP 주소 및 포트 번호 가져오기InetAddress inetaddress
2. 데이터 보고서 작성
3. Socket 만들기
4. Socket. 보내기send(DatagramPacket packet)
클라이언트 코드 쓰기
package com.chen.study.socket.socketServer;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class UdpSocketClient {
private static int port = 12000;
private static String ip = "192.168.119.35";
public static void UdpSocketClient(){
try {
byte[] data = " !".getBytes();
System.out.println(" :"+" !");
InetAddress inetaddress = InetAddress.getByName(ip);
//
DatagramPacket packet = new DatagramPacket(data, data.length, inetaddress, port);
// Socket
DatagramSocket socket = new DatagramSocket();
socket.send(packet);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
UdpSocketClient();
}
}
부록:
String info = new String (date,0,packet.getLength());String 구성 방법public String(byte[] bytes, int offset, int length) bytes - 문자로 디코딩할 byte offset - 디코딩할 첫 번째 byte 인덱스 length - 디코딩할 byte 수
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
React 구성 요소에서 소켓 이벤트 리스너가 여러 번 실행됩니다.기본적이지만 종종 간과되는 사이드 프로젝트를 하면서 배운 것이 있습니다. 이 프로젝트에는 단순히 두 가지 주요 부분이 포함되어 있습니다. 프런트 엔드: 반응 및 재료 UI 백엔드: Express, Typescript...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.