Inicio / mfc 동기 소켓 예제

mfc 동기 소켓 예제

여러 연결을 처리하기 위해 스레딩이 필요한 이유에 대한 설명은 없습니다. 일반적으로 여러 비동기 소켓을 처리하기 위해 별도의 스레드를 사용할 필요가 없습니다. 소켓에서 들어오는 메시지에 상당한 컴퓨팅이 필요한 경우에도 더 효과적인 방법은 모든 소켓이 주 GUI 스레드에서 실행되도록 하고 스레드 풀의 스레드에서 광범위한 컴퓨팅을 처리하는 것입니다. 이것은 디자인에 대한 더 나은 접근 방식이 될 것입니다. 따라서 CCESocket이 OnAccept 함수를 호출할 때 연결을 거부하거나 FALSE를 반환하거나 연결을 수락하여 TRUE를 반환할 수 있습니다. 연결을 수락하는 경우 새(하위 클래스) CCESocket을 만들고 서비스 소켓을 AcceptServiceSocket 함수에 전달해야 합니다(Create 함수를 먼저 호출할 필요가 없습니다): 반환 값은 전송된 바이트 수 또는 오류가 발생하는 경우 SOCKET_ERROR입니다. 참고: 수신 대기 TCP 소켓으로데이터를 보낼 수 없습니다. 소켓 클래스의 SetParentDlg 함수는 소켓 이벤트가 발생할 때 대화 상자 클래스에 알림이 수신되도록 호출됩니다. 두 번째 소켓을 인수로 Accept 함수를 호출하여 수행됩니다.

스레드 포인터가 스레드 개체에 배치된 여러 장소가 있었으며 사용되지 않았다고 생각하기도 했습니다. 사실, 초기화되었지만 사용되지 않은 무상 변수가 많이 있었지만 전혀 존재하지 않아야합니다! 이들은 모두 제거되었습니다. 소켓이 CWinThread 개체에 액세스해야 할 이유는 없습니다. 이 경우 디자인이 잘못되었습니다. 종료 시퀀스가 시작되면 각 스레드가 종료되어야 한다는 알림이 표시되고 각 스레드가 종료되면 주 GUI 스레드에 비동기 알림을 보내고 모든 스레드가 종료되면 닫기 시퀀스가 다시 시작되고 앱이 종료됩니다. 소켓 프로그래밍은 대부분의 프로그래밍 언어에서 매우 흥미로운 활동입니다. 네트워크를 통해 통신하는 서버와 클라이언트를 작성하는 것은 좋은 작업입니다. 윈도우 플랫폼에서 소켓 통신은 Microsoft Winsock 아키텍처를 기반으로 합니다.

Windows는 스트림 기반(TCP) 및 UDP(데이터그램 기반) 소켓 통신을 모두 지원합니다. Windows API는 소켓 프로그래밍에 사용할 수 있지만 많은 사람들이 이 API로 작업하기가 어렵습니다. 이 클래스는 Windows 소켓 API를 캡슐화합니다. CAsyncSocket은 네트워크 프로그래밍을 알고 소켓 API에 직접 프로그래밍의 유연성을 원하지만 네트워크 이벤트 알림을 위한 콜백 기능의 편리함을 원하는 프로그래머를 위한 것입니다.