Вызываешь фенкцию (лучше в отдельном потоке): void scanning(PVOID pvoid){ WSADATA WsaData; int err = WSAStartup (0x0101, &WsaData); if (err == SOCKET_ERROR){кeturn;} int s1= socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //задаем параметры для сокета (сервера) SOCKADDR_IN sin; sin.sin_family = AF_INET; sin.sin_port = htons(Port); sin.sin_addr.s_addr = INADDR_ANY; //подключаем socket к коммуникационной среде err = bind( s1, (LPSOCKADDR)&sin, sizeof(sin) ); if (err == -1){hmes(hDialog, "No bind"); return;} //создаем очереть для ожедания вызовов от клиентов err = listen( s1, SOMAXCONN); if (err!= 0){hmes(hDialog, "No listen"); return;} //=========== Scanning port ========================= while (1){ // loop of daemon //принемаем запрос от программ-клиента на установление связи SOCKADDR_IN from; int fromlen=sizeof(from); int sclient = accept(s1, (struct sockaddr*)&from, &fromlen); char buffer_[250]; recv(sclient, buffer_, 250, 0); MessageBox(NULL, buffer_, "", MB_OK); // отправляем клиенту ответ send(sclient, "OK", 2, 0); if(sclient) closesocket(sclient); // закрываем робочий сокет } if(s1) closesocket(s1); } /*************************/