cpp socket 예제

August 2, 2019  |  No Comments  |  by admin  |  Uncategorized

3. 소켓이 연결되면 서버는 클라이언트 소켓 설명기를 통해 클라이언트 소켓에 날짜와 시간을 보냅니다. 계속하기 전에 기본 소켓 작업에 대한 개념을 명확하게 하는 것이 좋습니다. 이 소켓 프로그래밍 자습서가 도움이 될 수 있습니다. 컴퓨터 네트워크에서 TCP/IP 프로토콜을 사용하는 서버와 클라이언트 간의 통신은 연결 지향적이라는 것을 알고 있습니다(버퍼와 대역폭이 클라이언트용으로 예약됨). 서버는 다른 클라이언트에서 너무 많은 조회를 얻을 것 이다, 그리고 서버 는 모든 요청을 회신 하는 각 클라이언트를 고유 하 게 식별 해야. 이를 위해 우리는 “클라이언트 (32 비트) + 포트 번호 (16 비트)의 IP 주소”를 사용합니다. 이를 소켓(48비트)이라고 합니다. 모든 네트워크 통신은 소켓을 통과해야 합니다. 소켓은 웹을 탐색할 때 사용되는 표준 인터넷 프로토콜에서 다양한 프로토콜을 사용하여 통신하는 데 사용할 수 있습니다. 이러한 패밀리는 비트/socket.h로 정의되며 sys/socket.h에서 자동으로 포함됩니다. 소켓이 있으면 해당 소켓을 로컬 컴퓨터의 포트와 연결해야 할 수 있습니다.

포트 번호는 커널에서 들어오는 패킷을 특정 프로세스의 소켓 설명자와 일치시키기 위해 사용됩니다. 서버는 로컬 호스트의 주소와 연결을 수신대기할 포트를 통해 bind()를 호출합니다. 그것은 파일 설명자 (이전에 설립 된 소켓), 바인딩할 주소의 세부 사항을 포함 하는 구조에 대 한 포인터(의 주소), INADDR_ANY 값은 일반적으로 이것에 사용 되는, 그리고 주소 구조의 길이 걸립니다. 사용해야 하는 특정 구조는 프로토콜에 따라 달라지므로 포인터에 의해 전달됩니다. 따라서 이 bind() 호출은 소켓을 포트의 현재 IP 주소에 바인딩하고, portno Returns 0은 성공 시 0, 오류시 -1을 바인딩합니다. 널리 사용되는 소켓 유형, 스트림 소켓 및 데이터그램 소켓이 있습니다. 스트림 소켓은 통신을 연속 문자 스트림으로 처리하고 데이터그램 소켓은 전체 메시지를 한 번에 읽어야 합니다. 각 프로토콜은 자체 통신 프로토콜을 사용합니다. 스트림 소켓은 신뢰할 수 있는 스트림 지향 프로토콜인 TCP(전송 제어 프로토콜)를 사용하고 데이터그램 소켓은 신뢰할 수 없고 메시지 지향적인 UDP(유닉스 데이터그램 프로토콜)를 사용합니다. 세트톡옵스는 선택 사항입니다.

“이미 사용 중이면 주소”와 같은 오류를 줄이는 데 도움이 되며 주소와 포트를 다시 사용하는 데 도움이 됩니다. 파일 설명자가 참조하는 소켓에 대한 옵션을 조작하는 데 도움이 됩니다. 이 문서에서는 “클라이언트” 기능에 대 한 래퍼 클래스를 코딩 하려고 합니다. 소켓 클라이언트는 특정 포트 번호의 특정 서버에 연결한 다음 일부 데이터를 전송한 다음 응답을 기다립니다. 그리고 응용 프로그램이 원하는만큼이 작업을 계속합니다.

Posted in Uncategorized. Bookmark the permalink.

Comments are closed.