본문 바로가기

JAVA/DAY 21 _ 23.09.14

Server Main

@@ 내멋대로 summary

- socket : 클라이언트와 연결할 수 있는 콘센트

- 포트넘버 : 콘센트의 모양

- accept :

 --> 생성하면 콘센트 뚜껑 연거임

 --> 한 콘센트는 하나밖에 연결 못하지?? 얘도 여러명 받으려면 여러개 있어야해 

- DataInputStream : scanner같은 존재 -> 데이터를 읽을때 유용!!

 

 

 

# serverSocket
- 소켓 서버를 만들기 위해 사용되는 클래스
- 클라이언트로부터의 연결 요청을 수신하고, 각 클라이언트와 통신할 수 있는 소켓 객체를 생성
- 생성된 소켓은 클라이언트와 서버 간의 데이터 통신을 가능하게 함

 

 

# ServerSocket을 사용하여 소켓 서버를 만드는 일반적인 절차

 

1. ServerSocket 객체를 생성하고 서버가 리스닝(대기)할 포트 번호를 설정
// --> 이렇게 하면 서버가 7777번 포트에서 클라이언트의 연결 요청을 수신함

System.out.println("서버 가동 시작");
ServerSocket serverSocket = new ServerSocket(7777);

 

2. accept() 메서드를 사용하여 클라이언트의 연결 요청을 대기하고,
클라이언트가 연결 요청을 보내면 클라이언트와 통신할 소켓 객체를 반환합니다.
이 소켓 객체를 사용하여 클라이언트와 데이터를 주고받을 수 있음
accept 하나당 하나의 클라이언트와 연결된다 --> 무한반복 돌려야겠지?

System.out.println("접속 대기중");
Socket socket = serverSocket.accept();

 

3. 실행시키면 누군가가 접속할 때까지 무한대기함

3-1)socket.getInputStream():
// 소켓(Socket) 객체로부터 입력 스트림(InputStream)을 얻는 메서드
// 클라이언트 소켓 또는 서버 소켓을 사용하여 데이터를 읽을 수 있게 해줌

System.out.println("접속 완료");
System.out.println("값 수신 대기중");
DataInputStream dis = new DataInputStream(socket.getInputStream());

--> 입력을 get한걸 내가 읽을 수 있게 streaming해준다구 ★★★

 

3-2) 데이터 읽기 : readUTF (문자열 읽을때)

String value = dis.readUTF();
System.out.println("수신값 : " + value);
System.out.println("서버종료");

 

'JAVA > DAY 21 _ 23.09.14' 카테고리의 다른 글

Client Main  (0) 2023.09.14
Network Basic  (0) 2023.09.14
Thread_Ex  (0) 2023.09.14
Thread_join  (0) 2023.09.14
Thread 기본개념 활용  (0) 2023.09.14