Socket
1. Socket?
- TCP/IP 기반 Network 통신에서 Data 송수신의 마지막 접점을 말함
- Socket통신은 Socket을 통해 Server-Client간 Data를 주고받는 양방향 연결 지향성 통신을 말함
- 보통 지속적으로 연결을 유지하면서 실시간 Data를 주고 받아야 하는 경우에 사용됨
- Client Socket & Server Socket 으로 구분되며, Socket과 통신을 위해서 network상에서 client와 server에 해당되는 컴퓨터를 식별하기 위한 IP Address와 해당 컴퓨터내에서 현재 통신에 사용되는 응용프로그램을 식별하기 위한 port number가 사용됨
2. Server & Client
- Server : Data를 제공하는 쪽을 말함
- Client : Data를 요청하여 제공 받는 쪽을 말함
3. Server Socket 구현
- Server Socket add
- ServerSocket serverSocket = new ServerSocket(8080); // port number
- Client 접속 대기
- Socket socket = serverSocket.accept();
- Data 송수신을 위한 input/output stream add
- InputStream in = socket.getInputStream();
- OutpStream out = socket.getOutputStream();
- input stream을 통한 Data 수신(Client → Server)
- byte[] inputData = new byte[100];
- int length = in.read(inputData);
- String inputMessage = new String(inputData, 0, length);
- output stream 을 통한 Data 송신(Server → Client)
- String outputMessage = “Message”;
- out.write(outputMessage.getBytes());
- out.flush();
- 통신 종료
- socket.close();
- serverSocket.close();
4. Client Socket 구현
- Client Socket add 통한 Server 접속
- Socket socket = new Socket(”127.0.0.1”, 8080); // IP Adress, port
- Data 송수신을 위한 input/output stream add
- InputStream in = socket.getInputStream();
- OutpStream out = socket.getOutputStream();