본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[java]DatagramSocket bind() connect() difference

by 돼지왕 왕돼지 2013. 12. 10.
반응형


 java, DatagramSocket bind() connect() difference

 

[java] datagramsocket bind() connect() difference


DatagramSocket 의 bind() 와 connect() 의 차이


DatagramSocket ( UDP ) 에는 bind() 와 connect() 라는 두개의 함수가 있는데 두개 함수의 구분이 확실하지 않아 알아보았다.


bind() 는 socket 에 port 를 연결하는 것. bind 를 한 process 에서 release 를 하기 전까지 이 port 는 다른 process 에서 쓸 수 없다. 


connect() 는 socket 에게 connect 를 하도록 하는 것이다. TCP/IP 가 아닌 UDP( datagram ) 의 경우는 사실 connect 가 꼭 필요한 것은 아니다. 




DatagramSocket 을 이용하여 데이터 보내기


DatagramSocket 을 이용해서 데이터를 보낼 때는 DatagramPacket 을 만들어야 한다.


byte[] buffer = "gamza".getBytes();

InetAddress address = InetAddress.getByName( "www.google.com" );

DatagramPacket packet = new DatagramPacket( buffer, buffer.length, address, 1010 );

// 1010 is port number


DatagramSocket datagramSocket = new DatagramSocket();

datagramSocket.send( packet );







DatagramSocket 을 이용하여 데이터 받기.


DatagramSocket 을 이용하여 데이터를 받을 때는


DatagramSocket dataramSocket = new DatagramSocket( 1010 );


byte[] buffer = new byte[ 1024 ];

DatagramPacket packet = new DatagramPacket( buffer, buffer.length );

datagramSocket.receive( packet );

buffer = packet.getData();


반응형

댓글