[JAVA] Socket

류슬기·2021년 1월 23일
0

TIL

목록 보기
2/16
post-thumbnail

Socket

네트워킹을 할 수 있는 클래스 객체
Client가 요청을 하면 Server가 요청을 처리한다.
소켓 생성시에는 "포트번호"를 부여해야 한다.
포트번호와 관련된 네트워크 프로그래밍은 해당 링크를 참고하면 된다.

Server Socket

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

public class ServerTest {

    public static void main(String[] args) {
        // 포트번호 설정
        int port = 33333;

        try {
            ServerSocket serverSocket = new ServerSocket(port);

            while (true) {
                Socket clientSocket = serverSocket.accept();
                System.out.println(clientSocket.getInetAddress() + "접속");
                
		// 보내기
                OutputStream out = clientSocket.getOutputStream();
                PrintWriter writer = new PrintWriter(out, true);

                // 문자열로 전송해야 한다.
                writer.println(new Date().toString());
                
		// 받기
                InputStream in = clientSocket.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                System.out.println(reader.readLine());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Client Socket

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClentServer {

    public static void main(String[] args) {
        int port = 33333;
        String localHost = "xxx.xx.xx.xx";

        try {
            Socket socket = new Socket(localHost, port);
            
	    // 보내기
            OutputStream out = socket.getOutputStream();
            String str = "hello server";
            
            // 바이트 단위로 쪼개서 보내기
            out.write(str.getBytes());
            
            // 받기
            InputStream in = socket.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));

            System.out.println(reader.readLine());
		
          // IP주소를 찾지 못할 때 예외처리
        } catch (UnknownHostException e) {
            System.out.println(e.getMessage());
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }

    }
}

결과
Server
/xxx.xx.xx.xx접속
hello server
Client
Sat Jan 23 20:38:22 KST 2021

profile
FE Developer🌱

0개의 댓글