udp 6

멀티캐스팅 - 채팅프로그램작성

채팅프로그램작성 TCP 방식을 이용한 채팅 클라이언트를 작성했다. 이번에 만들 채팅 클라이언트는 멀티캐스팅을 이용한 방식이다. TCP 방식의 경우에는 채팅을 하기 위해서 채팅 서버가 필요했다. 하지말 멀티캐스팅을 이용하면 서버가 필요없는 진정한 의미의 P2P 채팅 프로그램을 작성할 수 있다. TCP 방식의 채팅 프로그램에서 서버가 하는 가장 중요한 역할은 하나의 클라이언트가 문자열을 보내게 되면 접속한 모든 클라이언트에게 문자열을 전송하는 일이있었다. 그렇지만 멀티캐스팅을 이용하게 되면 사용자가 입력한 문자열을 다른 채팅 클라이언트에게 전송할 때에 서버를 거칠 필요 없이 불특정 다수의 클라이언트에게 문자열을 전송할 수 있다. 즉, 멀티캐스팅을 이용한 채팅 프로그램은 서버가 필요 없고 클라이언트만 있으면되..

멀티캐스트 - 간단한 인터넷 방송 클라이언트와 서버 구현

간단한 인터넷 방송 클라이언트와 서버 구현 멀티캐스팅을 이용한다는 것은 특정한 IP의 컴퓨터에게 정보를 전송한다는 것이 아니라 불특정 다수에게 정보를 전달한다는 것을 의미한다. 즉, 멀티캐스팅 서버는 패킷에 방송할 내용을 담아서 특정 IP가 아닌 불특정 다수에게 패킷을 전송하면 된다. 나머지 일은 라우터가 알아서 패킷을 전달하면 되는 것이다. 마치 공중파 방송이 불특정 다수에게 방송을 보내기 위해서 전파를 송신하는 것처럼 말이다. 따라서 클라이언트는 네트워크 내에 전달되는 패킷을 읽어들이는 역할만 수행하면 된다. 멀티캐스팅을 위한 서버는 기존의 UDP 방식의 서버 프로그래밍과 거의 같으며 클라이언트의 IP를 DatagramPacket에 지정하는 것이 아니라 멀티캐스트 그룹에 해당하는 Ip를 지정하는 부분..

멀티캐스트 - 멀티캐스트 방식이란

멀티캐스트 멀티캐스트 방식은 마치 공중파 방송과 흡사한 특징이 있다. 공중파 방송이 전파를 발송하면, 안테나를 세운 TV나 라디오에서 방송을 수신할 수 있는 것과 같이, 멀티캐스트 방식은 네트워크 내에 패킷을 전송한 후 여러 개의 호스트들이 해당 패킷을 전송 받을 수 있게 하는 방식이다. 멀티캐스트 방식은 단 한가지만 제외하고 UDP 방식과 똑같은 방식을 취하고 있다. 다른 점이란 UDP는 패킷이 도착할 호스트를 하나만 지정하는 데 비해서, 멀티캐스트 방식은 목적지를 멀티 캐스트 그룹(Multicast Group)으로 지정한다는 점이다. 멀티캐스트 그룹이란 클래스 D(244.0.0.0~239.255.255.255)에 속하는 IP 주소를 말한다. 이 중에서 239로 시작하는 멀티캐스트 주소는 내부 지정용으..

UDP 프로그래밍 - 타임 서버와 클라이언트 작성

UDP를 이용한 타임 서버와 클라이언트 작성 타임 서버는 에코 서버와 동작하는 방법이 거의 비슷하다. 다른 점이 있다면 에코 서버의 경우에는 클라이언트가 전송할 데이터를 그대로 반송하는 반면, 타임 서버는 클라이언트가 시간에 대해서 요청을 보내면 서버의 시간을 구해서 시간에 대한 요청을 보낸 클라이언트에게 현재 시간에 대한 정보를 전송하게 된다. 타임 서버와 클라이언트의 경우에는 TCP보다는 UDP를 이용하는 것이 알맞다. 그 이유는 전송하는 데이터가 간단하고 빠르게 반응하게 하기 위해서인데, 강조한대로 TCP의 경우는 연결지향성이기 때문에 UDP보다 초기 응답시간이 느리기 때문이다. 컴퓨터 여러 대를 운용할 경우, 각각의 컴퓨터 시간이 항상 같게 설정하려면 여간 번거로운 일이 아니다. 이런 것을 해결하..

UDP 프로그래밍 - 에코 클라이언트 / 서버 프로그래밍

UDP를 이용한 에코 클라이언트 / 서버 프로그래밍 에코 서버 프로그래밍 import java.net.*; public class UDPEchoServer { public static void main(String[] args) { if(args.length != 1){ System.out.println("사용법 : java UDPEchoServer port"); System.exit(1); } int port = 0; try{ port = Integer.parseInt(args[0]); }catch(Exception ex){ System.out.println("port 번호는 양의 정수로 입력하여 주세요."); System.exit(1); } DatagramSocket dsock = null; try{..

UPD 프로그래밍

UDP를 이용한 프로그래밍 방법 UDP(User Datagram Protocol)는 데이터그램 통신 프로토콜이라고도 한다. UDP는 TCP와는 다르게 비연결성(connectionless) 프로토콜이다. 즉, TCP 처럼 미리 연결을 맺고 통신하는 방식이 아니다. 데이터그램은 보통 패킷(packet)이란 용어로 교체되어 사용된다. 패킷이란 인터넷 내에서 운반되어야 할 메시지 단위이다. UDP는 패킷을 보낼 때마다 수신측의 주소와 로컬 파일 설명자를 함께 전송해야 한다. 이런 이유로 UDP는 전송해야 할 데이터 외에 추가적인 데이터가 함께 전송되어야한다. 또한 UDP는 TCP와는 다르게 비연결성이기 때문에 패킷이 수신 측에 전송한 순서대로 도달하지 않는 문제가 발생할 수도 있다. (그러나 네트워크가 근거리일..