udp 통신 예제 c++

두 번째 매개 변수의 경우 구조 sockaddr는 OS에서 주소 패밀리를 식별하는 첫 번째 바이트 몇 을 읽을 수 있는 일반 컨테이너입니다. 주소 패밀리는 특정 통신 유형에 적합한 요소를 포함하는 sockaddr 구조체의 변형을 결정합니다. IP 네트워킹의 경우 헤더 netinet/in.h에 정의된 구조형 sockaddr_in을 사용합니다. 이 구조는 다음과 같습니다: 소켓에 대한 논의에서 TCP/IP 프로토콜을 사용하는 소켓: 연결 지향 소켓프로그래밍의 예를 다루었습니다. 여기서는 UDP/IP를 통해 연결없는 소켓을 사용하는 예제를 간략하게 살펴보겠습니다. 전송 주소는 소켓 주소 구조에 정의되어 있습니다. 소켓은 다양한 유형의 통신 인터페이스와 함께 작동하도록 설계되었기 때문에 인터페이스는 매우 일반적입니다. 포트 번호를 매개 변수로 받아들이는 대신 사용 중이던 주소 패밀리(네트워크 유형)에서 실제 형식이 결정되는 sockaddr 구조를 사용합니다. 예를 들어 UNIX 도메인 소켓을 사용하는 경우 실제로 파일 시스템에서 파일을 만듭니다. 이것은 차단 호출입니다. 연결()에 대한 호출을 발행할 때 연결이 이루어지거나 오류가 발생할 때까지 프로그램이 제어권을 되찾지 못하기 때문입니다. 예를 들어 웹 브라우저를 작성한다고 가정해 보겠습니다.

웹 서버에 연결하려고 하지만 서버가 응답하지 않습니다. 이제 connect() API가 중지 단추를 클릭하여 연결 시도를 중지하기를 원합니다. 그러나 그것은 할 수 없습니다. 성공 시 0이 될 수 있는 반환또는 오류시 -1을 기다립니다. 좋은 예! 그것은 간단하고 즉시 작동! TCP 소켓을 사용하면 종료 시스템 호출을 사용하여 소켓을 닫거나 한 방향으로 통신을 종료할 수 있습니다. UDP에는 연결 개념이 없으므로 종료를 호출할 필요가 없습니다. 그러나 소켓은 여전히 커널에서 파일 설명자(file 설명자)를 사용하므로 파일과 마찬가지로 가까운 시스템 호출을 통해 해제할 수 있습니다. 인수 : 도메인 – 통신 도메인을 지정합니다 (IPv4에 대한 AF_INET6/ Af_INET6 IPv6에 대한) 유형 – 생성할 소켓 유형 (TCP용 SOCK_STREAM / UDP용 SOCK_DGRAM) 프로토콜 – 소켓에서 사용할 프로토콜입니다.