검색 여닫기
검색
메뉴 여닫기
555
262
4
6.2천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Socket programming 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Socket programming
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
상위 문서: [[Application Layer]] ==개요== Socket 프로그래밍(Socket programming)의 목표는 socket을 사용하여 network communication을 사용하는 client/server 애플리케이션을 만드는 것이다. 이때 socket은 사용하는 transport service의 종류, UDP와 TCP에 따라 다르게 구현된다. UDP는 client와 server 사이에 'connection'(handshaking)이 존재하지 않는다. 또한 UDP를 통해서 전송되는 데이터는 out-of-order되거나, 누락될 수도 있다. 하지만 TCP는 handshaking을 통해서 클라이언트와 서버 사이의 'connection'을 구성한 다음, 서버와 클라이언트 사이의 통신이 진행된다. 이를 통해서 reliable data transfer를 가능케 한다. ==Socket programming with UDP== [[파일:The client-server application using UDP.png|테두리|프레임없음|450x450px]] 위는 UDP에 의해 구현된 클라이언트와 서버가 데이터를 주고 받는 socket 프로그래밍의 예시를 보여준다. # 먼저 서버와 클라이언트는 데이터를 주고 받기 위해 각각 serverSocket, clientSocket을 만든다. # 클라이언트는 데이터를 clientSocket를 통해 severSocket에 송신한다. # 서버는 severSocket을 통해 해당 데이터를 읽는다. #* 서버도 데이터를 severSocket를 통해 clientSocket에 답장한다. # 클라이언트는 clientSocket을 통해 해당 데이터를 읽고 clientSocket을 닫는다. ==Socket programming with TCP== [[파일:The client-server application using TCP.png|테두리|프레임없음|466x466픽셀]] 위는 TCP에 의해 구현된 클라이언트와 서버가 데이터를 주고 받는 socket 프로그래밍의 예시를 보여준다. * Server 측 *# 서버는 클라이언트의 요청(request)을 받기 위해 특정 포트 번호(port=x)를 사용하여 소켓을 생성한다. *#* serverSocket = socket() 명령어로 수행된다. *# 서버는 클라이언트로부터의 TCP 연결 요청을 기다린다. *#* connectionSocket = serverSocket.accept() 명령어를 통해 TCP 연결이 설정된다.<ref>accept()는 연결 요청이 도착할 때까지 기다리며, 요청이 오면 이를 수락하여 새로운 소켓인 connectionSocket을 반환한다.</ref> *# 서버는 연결된 클라이언트로부터 전송된 데이터를 connectionSocket을 통해 읽는다. *# 서버는 클라이언트로부터 받은 요청에 대해 처리 후, 응답(reply)을 clientSocket으로 전송한다. *# reply 전송이 끝나면 서버는 connectionSocket을 닫고 이를 종료한다. * Client 측 *# 클라이언트는 서버 IP 주소와 포트 번호(port=x)를 사용하여 서버와의 TCP 연결을 설정하기 위한 소켓을 생성한다. *#* clientSocket = socket() 명령어로 수행된다. *# 클라이언트는 clientSocket을 통해 서버에 요청(request)을 보낸다. *# 서버로부터 전송된 응답(reply)을 클라이언트의 clientSocket을 통해 읽는다. *# 클라이언트는 응답을 받은 후, clientSocket을 닫고 종료한다. ==각주== [[분류:컴퓨터 네트워크]]
Socket programming
문서로 돌아갑니다.