wsaconnect 예제
y posteado en Sin categoría

다음은 저자가 주 프로그램을 프록시화하거나 몇 가지 작업을 수행하기 위해 작성한 몇 가지 “예제 플러그인”입니다: 예제의 서버 측면은 조금 더 복잡하지만 0 개 이상의 클라이언트 연결을 관리해야하기 때문입니다. 수신 대기 소켓과 클라이언트 소켓은 단일 배열로 처리되고, sc. 배열 요소 0은 수신 대기 소켓이고 나머지는 클라이언트 연결이 가능합니다. 전역 변수 nConns에는 현재 클라이언트 수가 포함됩니다. 클라이언트 연결이 완료될 때마다 모든 활성 소켓은 소켓 배열의 시작 부분으로 압축됩니다. 이벤트 핸들의 해당 배열도 있습니다. 연결 지향 소켓(예: SOCK_STREAM 유형)의 경우 이름(소켓네임스페이스의 주소, 자세한 설명은 바인딩참조)을 사용하여 외부 호스트에 대한 활성 연결이 시작됩니다. 이 호출이 성공적으로 완료되면 소켓이 데이터를 보내고 받을 준비가 된 것입니다. 이름 구조의 주소 매개 변수가 모두 0이면 WSAConnect는 WSAEADDRNOTAVAIL 오류를 반환합니다.

활성 연결을 다시 연결하려는 모든 시도는 오류 코드 WSAEISCONN으로 실패합니다. 예제는 약간 길지만 특별히 복잡하지는 않습니다. 대부분의 코드는 일반적인 WSAEventSelect() 코드에 지나지 않습니다. 유일한 예외는 FD_QOS 이벤트로 수행하는 것입니다. 주요 기능은 평범한 것에서 아무것도하지 않습니다. 인수는 구문 분석되고, 소켓이 만들어지며, 응용 프로그램이 서버 또는 클라이언트로 호출되는지 여부에 따라 서버 또는 클라이언트 함수가 호출됩니다. 먼저 클라이언트 연결을 살펴보겠습니다. 이전 프로그램 예제에서 사용된 공통 파일을 복사하여 이 프로젝트 폴더에 붙여넣습니다.

.NET 프로그래밍에서 모든 파일을 직접 가져올 수 있으며 해당 파일이 현재 프로젝트에 자동으로 복사되기 때문에 이러한 단계는 매우 이상합니다. tcpqosexample -q [b, d,a] -s-c -w -r 연결없는 소켓 (예: SOCK_DGRAM 유형)의 경우 WSAConnect에서 수행하는 작업은 후속 작업에 소켓을 사용할 수 있도록 기본 대상 주소를 설정하는 것일 뿐입니다. 연결 지향 송수신 작업(송신, WSASend, recv 및 WSARecv)을 제공합니다. 지정된 대상 주소 이외의 주소에서 수신된 모든 데이터그램은 삭제됩니다. 전체 이름 구조가 모두 0(이름 구조의 주소 매개 변수뿐만 아니라)이면 소켓의 연결이 끊어집니다. 그런 다음 기본 원격 주소가 확정되지 않으므로 WSASend, recv 및 WSARecv 호출을 보내면 오류 코드 WSAENOTCONN이 반환됩니다. 그러나 sendto, WSASendTo, recvfrom 및 WSARecvFrom는 여전히 사용할 수 있습니다. 소켓이 이미 연결되어 있더라도 WSAConnect를 다시 호출하기만 하면 기본 대상을 변경할 수 있습니다. 이름이 이전 WSAConnect와 다른 경우 수신대기 중인 모든 데이터그램은 삭제됩니다. Windows 세계에서 대부분의 함수에는 ANSI와 유니코드 형식의 두 가지 형식이 있습니다.

ANSI 양식은 A로 끝나고 ANSI 매개 변수를 기대합니다. 유니코드 양식은 W로 끝나고 유니코드 매개 변수를 기대합니다. 예를 들어 CreateProcess 함수의 두 가지 형태는 CreateProcessA 및 CreateProcessW입니다. 이 섹션에서는 TCP 및 UDP를 통해 QOS를 사용하는 두 가지 프로그래밍 예제를 살펴보겠습니다. TCP를 사용하는 첫 번째 예제에서는 FLOWSPEC을 설정하고 Windows 98, Windows Me 및 Windows 2000 플랫폼에서 RSVP 신호를 관리하는 방법을 보여 줍니다. 예를 들어 IP 주소가 동적인 경우 ForceBindIP는 인터페이스의 GUID를 사용할 수도 있습니다. 인터페이스의 GUID를 찾으려면 regedit을 실행하고 HKEY_LOCAL_MACHINESYSTEMCurrentControlSet서비스Tcpip매개 변수인터페이스로 찾아보십시오. 동적 주소가 있는 인터페이스를 찾은 다음 키 이름을 복사합니다.

Compartir este contenido...
Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone
Los Comentarios están cerrados.