자바 소켓 통신기초 : socket----- Morph's house 블로그 공부

메인 서버 


public class MainServer {

    public static void main (String[] args) 

    { 

        try {

            ServerSocket s_socket = new ServerSocket(8888); 

            //ServerSocktet 클래스로 객체(s_socket) 생성 (포트 넘버를 8888로 넣어줌 ) 

           

            Socket c_socket = s_socket.accept (); 

            //ServerSocket 클래스의 객체인 s_socket 으로 "accept" 메소드를 호출한다. 

             //클라이언트가 해당 8888  포트로 연결을 시도한다면 accpet 메소드는 대기를 풀                고, 클라이언트와 연결시키는 Socket 클래스를 생성하여 반환하게 된다.            

             // 이 accpet 메소드가 하는 역할은 클라이언트가 들어오는 것을 대기하는 역할                 //클라이언트가 8888 포트로 연결시도하면 accpet 메소드는 대기를 풀고, 클라이                언트와 연결시키는 "Socket" 클래스를 생성하여 반환하게 된다.   

            accept 메소드로부터 받은 "c_socket" 이 바로 클라이언트랑 1 : 1 연결된 소켓 

            OutputStream output_data = c_socket.getOutputStream(); 

            String sendDataString = "Welcome to My Server"; 

            output_data.write(sendDataString.getBytes()); 

        

            s_socket.close() ; 

            c_socket.close(); 

            } catch(IOException e ) {

            }

        }


간략 정리 ) 

- ServerSocket 으로 연결대기하다가 Client 가 연결을 시도하면 Socket 을 생성하여 해당 소켓으로 데이터를 주고 받는다. 

물론 데이터는 스트림 형태로 주고 받을 수 있다.


요약 ) 

1. ServerSocket 은 클라이언트 연결 요청이 있을때까지 대기 

2. 클라이언트가 연결요청이 있으면 ( port 를 통해서 8888 ) Socket 을 생성하여 연결시킴

3. 연결된 Socket 으로 데이터를 스트림형태로 주고 받음 


클라이언트 서버 



public class MainClient {

    public static void main(String[] args ) {

        try {

                Socket c_socket = new Socket ( "192.168.0.2", 8888 ) ; 


                //Socket 객체를 생성하여 연결을 시도하는 부분 

                //연결할 ip 주소와 Port 번호를 매개변수로 넘겨주어야 해당 주소로 연결시도

                InputStream input_data = c_socket.getInputStream(); 

                

                byte[] receiveBuffer = new byte[100]; 

                input_data.read(receiveBuffer); 

            

                System.out.println(new String(receiveBuffer)); 


                c_socket.close(); 

                }catch(IOException e ) {

                   }

    }

}







댓글