애플릿 흐름
만약 (! Handle){MessageBox(_T ("포트 바인딩 실패 또는 수신 실패!" " ))); 반환; } sockaddr from int fromlen =15; Flag = truewhile (flag) {handle handle from = winsocket accept (handle,& 는& fromlen); ///fromlen 값이 16 보다 작으면 초기화를 성공적으로 받을 수 있습니다. 만약 (! Handlefrom){//MessageBox(_T ("수락 시작 실패!" " ))); 계속; } 바이트 버퍼 [1024]; Intsendlen = 0; Sendlen=::winSocketRec(handle, buffer, fromlen, msg _ peek); //수신 문은 더 이상 데이터를 수신할 수 없습니다. If(send len<;; =0){//MessageBox(_T ("정보 수신 실패!" " ))); Interror = 0; Error =::WSAGetLastError(); (); ///WSAECONNRESETcontinue;; } sendlen =:: winsocket send (handle, buffer, fromlen); If(send len<;; =0){//MessageBox(_T ("메시지를 보내지 못했습니다!" " ))); 계속; }}::winSocketClose (핸들); Handle winsocket bind (constchar * szip, unsigned short nport, uint connect)// IP 및 포트를 기준으로 소켓 연결 시작, 최대 연결 {LP socket handll 핸들-> Skt = 소켓 (af _ inet, SOCK_STREAM, IP proto _ TCP); //소켓 연결, TCP 를 사용하여 문자 스트림//소켓 전송 (af _ inet, sock _ stream, IP proto _ TCP); If (핸들-> Skt==INVALID_SOCKET)// 연결 성공 {핸들 삭제; 반환 NULL}// 소켓 char IP 에 IP 값 할당 [64] = {0}; # ifdef _ unicodesize _ tconvert = 0; * wcs tombs _ s(& amp;; Convert, IP, 64, szIp, 63) : #else_strcpy_s(ip, 64, szIp, 63); # endif sockaddr _ inaddr = {0}; Addr.sin_addr 입니다. S_un 입니다. S _ addr =:: inet _ addr (IP); //ipaddr.sin _ family 설정 = af _ inet//네트워크 서비스 설정 addr.sin _ port = nPort// 포트 설정//접속 설정 if (bind) Skt, (sockaddr *)& amp;; Addr, sizeof(addr))= = socket _ error)// 연결 실패 {핸들 삭제; Closesocket (핸들-> Skt); 반환 NULL}:: 들어 봐 (handle-& gt;; Skt, connet); //네트워크에 연결하고 소켓 변경으로 돌아갑니다.