Pages Menu
TwitterRssFacebook
Categories Menu

Posted by on Ago 2, 2019

c++ 소켓통신 예제

당신은 쿼리가 있거나 C와 C ++의 소켓 프로그래밍에 대한 위의 튜토리얼에서 잘못된 무언가를 발견한 경우 아래의 코멘트. 소켓은 프로그램이 들어오는 연결을 수락하고, 나가는 연결을 만들고, 데이터를 보내고 받을 수 있도록 하는 파일과 유사한 개체입니다. 두 컴퓨터가 통신하기 전에 둘 다 소켓 개체를 만들어야 합니다. 바인딩된 소켓에서 들어오는 연결을 허용합니다. 원격 호스트의 주소 정보는 remote_host 구조에 기록되고 주소 구조의 실제 크기는 *addr_length로 기록됩니다. 즉, 이 accept() 함수는 연결 클라이언트의 주소 정보를 주소 구조에 씁니다. 그런 다음 수락된 연결에 대한 새 소켓 파일 설명자가 반환됩니다. 따라서 새 소켓 파일 설명자가 연결된 클라이언트와 통신하는 데 사용되는 동안 원래 소켓 파일 설명자는 새 연결을 수락하는 데 계속 사용할 수 있습니다. 이 함수는 연결된 소켓을 식별하기 위해 새 소켓 파일 설명기를 반환하거나 오류시 -1을 식별합니다. 세트톡옵스는 선택 사항입니다.

“이미 사용 중이면 주소”와 같은 오류를 줄이는 데 도움이 되며 주소와 포트를 다시 사용하는 데 도움이 됩니다. 파일 설명자가 참조하는 소켓에 대한 옵션을 조작하는 데 도움이 됩니다. * 호출 블록, 비 차단 소켓 대 차단 소켓으로 이동합니다. 소켓에는 스트림 소켓과 데이터그램 소켓이 가장 많이 사용됩니다. 소켓 유형은 /usr/include/bits/socket.h 두 번째 인수는 소켓 유형에도 정의되어 있습니다. 여기에는 파일이나 파이프에서 처럼 연속 스트림에서 문자를 읽는 스트림 소켓과 메시지가 청크로 읽는 데이터그램 소켓이 두 가지 선택 사항이 있습니다. 두 개의 기호 상수는 SOCK_STREAM 및 SOCK_DGRAM입니다. 세 번째 인수는 프로토콜입니다. 이 인수가 0이면(항상 비정상적인 경우를 제외하고) 운영 체제에서 가장 적합한 프로토콜을 선택합니다. 스트림 소켓의 경우 TCP를 선택하고 데이터그램 소켓의 경우 UDP를 선택합니다.

다른 컴퓨터에 연결하려면 소켓 연결이 필요합니다. connect() 시스템 호출은 파일 설명자 sockfd가 참조한 소켓을 addr에서 지정한 주소에 연결합니다. 서버의 주소와 포트는 addr에 지정됩니다. 유닉스 도메인의 소켓 주소는 기본적으로 파일 시스템의 항목인 문자 문자열입니다.

Centro per un Futuro Sostenibile via Tacito, 84 00193 Roma tel. +39 06 90288228