ServerSocket은 포트 번호를 담기위한 클래스인가요?
public final static int DAYTIME_PORT=13;
ServerSocket sSk = ServerSocket(DAYTIME_PORT);
Sock sk = sSk.accept(); == 이것이 접속하는 부분 맞나요?
포트 번호를 ServerSocket 객체(sSk)로 생성을 해서 그 객체를 Socket의 클래스 변수에 담아 서버에 접속하는게 전부인가요?
또...
BufferedReader br =new BufferedReader(new InputStreamReader(sk.getInputStream())); == 소스분석???
PrintWriter pw = new PrintWriter(new OutputStreamReader(sk.getOutputStream())); == 소스분석???
여기서getInputStream ()이 소켓의 입력 스트림을 돌려줍니다.
getOutputStream ()이 소켓의 출력 스트림을 돌려줍니다. API는 이렇게 나와있던데.. 무슨말인지...ㅡ...ㅡ...ServerSocket과 Socket의 역할이 또 무엇이 있는지 궁굼합니다.
그럼 좋은 하루 되세요~~^^
Addictive 2026.01.11
accept() 부분을 추가 설명 하자면,
SocketServer의 accept()는 클라이언트가 접속하면 Socket 형을 반환하고요
접속 전까지는 대기상태입니다. 코딩 해보면 클라이언트 접속전에는 가만히 있어요~
서버에는 ServerSocket과 Socket을 클라이언트에서는 Socket으로 구현합니당.
좀더 자세한건 한빛 미디어에서 나온 자바I/O & NIO 네트워크 프로그래밍 책을 추천합니당.
자세하게 나온것 같아요~!
하린 2026.01.11
넵^^ 감사합니다~
꽃가을 2026.01.11
리더, 라이터들은 데이터를 읽어오고 내보내는 역할을 하죠. 데이터나 서버의 특징에 따라서 여러가지가 쓰입니다. getInputStream()을 호출하면 스트림이 열리면서 데이터가 들어오게 되죠. 그걸 다시 OutputStream()으로 해서 원하는 데이터형식으로 내보내구요. 자세하게 알려면 참고서 보는게 빠를 듯. 스트림은 분량이 좀 많다오.
동생몬 2026.01.11
그리고... accept()는 클라이언트 소켓이 접속할 때 호출 되는 것 같네요...
흰여울 2026.01.11
서버소켓은 소켓을 생성해주는 소켓 서버 객체 입니다.
클라이언트 소켓에서 서버로 접속을 하면 소켓서버에서 소켓을 하나 생성하여 서버에 있는 소켓이랑
클라이언트에 있는 소켓이랑 서로 데이타 연동을 하도록 하여 줍니다.
데이타 연동은 소켓끼리만 되어지고, 서버소켓은 중매자 역할만 할 뿐입니다.