리눅스 udp 예제

예외는 응용 프로그램 계층 프로토콜이 명시적으로 다른 포트에서 시작하도록 요청하거나 허용하는 경우입니다(예: TFTP의 경우와 같이). 이 문서에서는 Linux/유닉스 플랫폼의 C에서 udp 소켓을 사용하여 간단한 에코 서버와 클라이언트를 작성하는 방법을 설명합니다. UDP 소켓 또는 데이터그램 소켓은 여러 가지 면에서 TCP 소켓과 다릅니다. 가장 중요한 차이점은 UDP 소켓이 연결 지향적이지 않다는 것입니다. 기술적으로 말하자면 UDP 서버는 연결을 허용하지 않으며 UDP 클라이언트는 서버에 연결되지 않습니다. 이 예제는 포트를 0으로 설정하여 사용 가능한 포트 번호를 선택하도록 운영 체제에 요청합니다. 특정 포트 번호를 사용하려면 프로그래머가 아니지만 전자 제품 및 자동화 된 작업을 만드는 데 관심이있는 라인을 변경하십시오. 이것은 UDP 소켓 통신의 매우 유용한 예입니다. 내가 찾은 것은 프로그램이 데이터를 기다리는 동안 다른 작업을 수행하지 않는다는 것입니다. 이 서버를 “깜박임 Led 1″으로 보내고 명령을 계속 듣고 LED를 켜거나 깜박이거나 끄라고 말하는 것이 좋습니다. 나는 예를 들어 하나의 프로젝트에서 LED 아무 런치를 깜박 일 수 있습니다, 나는 또한 파이에서 실행하고 내가 지금 보내는 명령에 응답 코드를 얻을 수 있지만 백그라운드에서 일을 계속할 수 싶습니다.

그리고 NCAT 내 우분투 시스템에 자세한 의미 옵션 -vV를 사용했다. 캡처된 텍스트에는 자세한 출력이 없습니다. 내 시스템에는 데이터에 입력된 각 줄에 대해 5줄의 정보가 있었습니다. 여전히, 나는 리눅스와 우분투에 새로운 이 서버 응용 프로그램을 테스트 하는 예기치 않은 멋진 방법. Silver Moon의 접근 방식은 작동하지만 가장 좋은 방법은 epoll()을 사용하여 소켓 연결을 비동기적으로 수신하고 TCP가 UDP가 아닌 UDP를 사용하는 것이므로 UDP는 신뢰할 수 없으므로 일부 명령이 의도한 대로 서버에 연결되지 않을 수 있습니다. 이것이 대부분의 최신 소켓 서버에서 수행되는 것입니다. epoll() (리눅스 시스템 호출 그래서 라즈베리 파이에서 작동 해야)를 사용 하는 방법을 인터넷 검색을 시도 합니다. 이를 통해 효율적이고 확장 가능한 소켓 서버를 사용할 수 있습니다. (나는 실제로 거의 메인 서버와 epoll() TCP와 함께 라즈베리 파이를 사용 하 여 IoT 소켓 통신 시스템 개발 완료 내가 아는 한 물건의이 종류에 대 한 최고의 접근.