tcp 서버 예제

Количество просмотров: 62

Автор Antonenko Andrii в . Опубликовано Без рубрики

서버 소켓은 다른 호스트에 적극적으로 연결하려고 시도하지 않습니다. 대신 들어오는 연결을 기다립니다. 또한 피어 연결이 끊어지면 서버 소켓이 닫히지 않습니다. 대신 클라이언트는 해당 연결과 관련된 별도의 활성 소켓과 서버에서 통신합니다. 중단된 수락을 처리하기 위해 서버의 기본 기능인 for 루프의 시작 부분에 대한 호출을 다음과 같이 변경합니다. str_cli에 대한 호출입니다. 여러 연결을 설정하는 목적은 동시 서버에서 여러 자식을 생성하는 것입니다. RST를 유도하는 첫 번째 쓰기(서버가 클라이언트로 RST를 보내도록 하는 경우)를 사용하여 클라이언트에 두 개의 쓰기(FIN를 클라이언트로 전송한)를 수행한 다음 RST를 다시 읽음으로써 클라이언트에서 이를 시뮬레이션할 수 있습니다. 첫 번째 쓰기는 RST를 유도하고 두 번째 쓰기는 신호를 유도하기 때문에 우리는 신호를 얻기 위해 두 개의 쓰기를 사용해야합니다.

FIN을 받은 소켓에 쓰는 것은 괜찮지만 RST를 받은 소켓에 쓰는 것은 오류입니다. 서버를 테스트하려면 클라이언트 프로그램에 대한 유사한 수정이 필요합니다. 이 섹션에서는 서버 프로세스가 해당 호스트에서 실행되는 동안 운영자에 의해 서버 호스트가 종료되는 경우 발생하는 작업을 설명합니다. 그런 다음 동일한 호스트에서 클라이언트를 시작하여 서버의 IP 주소127.0.0.1(루프백 주소)을 지정합니다. 서버의 일반(루프백이 아닌) IP 주소를 지정할 수도 있습니다. 신호 처리기를 설정하고 해당 처리기에서 대기를 호출하는 것은 좀비를 방지하기에 충분하지 않습니다. 문제는 신호 처리기가 실행되기 전에 다섯 개의 신호가 모두 생성되고 유닉스 신호가 일반적으로 큐에 대기되지 않기 때문에 신호 처리기가 한 번만 실행된다는 것입니다. 이 문제는 결정적이지 않습니다. 서버 호스트에 도착하는 PIN의 타이밍에 따라 신호 처리기가 2회, 3번 또는 4번 실행됩니다.

TCP 서버를 만드는 데 필요한 네 가지 시스템 호출은 소켓, 바인딩, 수신 및 수락입니다. 각각은 특정 목적을 가지고 있으며 위의 순서로 호출해야 합니다 수락 호출은 새 파일 설명자반환을 합니다. 이 파일 설명자는 특정 클라이언트에 만 해당합니다. 서버 I/O에 원래 서버 소켓 설명기를 사용한 다음 네트워킹 코드가 실패한 이유를 궁금해하는 것은 일반적인 프로그래밍 실수입니다.

Другие записи раздела:

  • portsentry 다운로드 (0)
    j$k531580j$k먼저 해당 웹사이트로 이동 하 여 Portsentry 트리를 다운로드 합니다. […]
  • udp connect 예제 (0)
    j$k591580j$k로컬 IP 주소는 일반적으로 와일드카드 주소 또는 루프백 주소로 기본설정되어야 […]
  • 페이스북 동영상 다운로드 (0)
    j$k524896j$k당신은 인 스 타 그램에 비디오를 작성 하 고 페이스 북 페이지에 밀어 (큰 도달을 […]
  • jquery selector 예제 (0)
    j$k569300j$kJS의 window.onload() 및 jquery의 […]
  

Трекбэк с Вашего сайта.