UDP 프로토콜 기반 Socket 간단한 인스턴스

3113 단어 socketUDP
자세히 보기
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 수

좋은 웹페이지 즐겨찾기