udp 소켓 예제

Friday, 2nd August 2019Allgemein

예를 들어 google.com 주소를 찾으려고 한다고 가정합니다. 코드는 다음과 같이 표시됩니다 : Thx! 이 문서는 소켓 프로그래밍에 대한 몇 가지 기본적인 사항을 이해하는 데 매우 유용했습니다. 서버의 주소에는 서버 컴퓨터의 IP 주소와 해당 컴퓨터의 해당 포트에서 수신 대기 하는 소켓에 해당하는 포트 번호가 포함됩니다. IP 주소는 네트워크 바이트 순서의 4바이트(32비트) 값입니다(위의 htonl 참조). 나는 오랫동안 소켓을 하지 않았다. 지금은 여러 스레드를 사용하여 병렬로 작업을 수행하는 것을 생각할 수 있습니다. 따라서 주 스레드는 백그라운드 작업을 수행할 수 있으며 추가 스레드는 들어오는 메시지에 대한 udp 포트를 들을 수 있습니다. 또는 다른 방법으로 라운드. 그러나 그것이 최선의 방법인지 확실하지 않습니다. 더 나은 대안이있을 수 있습니다.

첫 번째 매개 변수인 소켓은 소켓 시스템 호출을 통해 만들어지고 바인딩을 통해 명명된 소켓입니다. 두 번째 매개 변수인 버퍼는 보내려는 메시지의 시작 주소를 제공합니다. 길이는 보내려는 바이트 수입니다. 플래그 매개 변수는 0이며 UDP 소켓에는 유용하지 않습니다. dest_addr는 메시지의 대상 주소와 포트 번호를 정의합니다. 로컬 주소를 식별하기 위해 바인딩에 사용한 것과 동일한 sockaddr_in 구조를 사용합니다. 바인드와 마찬가지로 최종 매개 변수는 단순히 주소 구조의 길이입니다. sockfd가 소켓 설명자이고 백로그가 이 소켓에 대해 커널이 큐에 있어야 하는 최대 연결 수입니다. 백로그 인수는 프로세스를 대신하여 큐에 있어야 하는 미해결 연결 요청 수의 시스템에 대한 힌트를 제공합니다.

큐가 가득 차면 시스템은 추가 연결 요청을 거부합니다. 백로그 값은 서버의 예상 로드에 따라 선택해야 합니다. BTW, 쿠로즈 / 로스는 자바 소켓 프로그래밍을 커버하고 아래에 설명되지 C 소켓 프로그래밍을 하지 않습니다. TCP 소켓과 마찬가지로 이 자습서에서는 기본 사항에 중점을 둡니다. 훨씬 더 자세히 탐구 하는 웹에 자습서가 있다. 온라인 수동 페이지는 허용 가능한 매개 변수 및 기능에 대한 최신 정보를 제공합니다. 여기에 설명된 인터페이스는 OS X, Linux 및 Solaris 운영 체제에서 제공하는 시스템 호출 인터페이스이며 일반적으로 모든 유닉스/POSIX 시스템(및 기타 많은 운영 체제)과 유사합니다. 소켓, s는 소켓 시스템 호출로 만들어집니다: 소켓 끝점이 파일 설명자로 표시되므로 읽기 및 쓰기를 사용하여 소켓이 연결되어 있는 한 소켓과 통신할 수 있습니다. 그러나 옵션을 지정하려면 다른 함수 집합이 필요합니다.