Спасибо, получилось! Вот работающий код, может, кому-нибудь пригодится.
Код | #include <stdio.h> #include <winsock2.h> #include <windows.h> #include <conio.h> #include <vcl.h> #pragma hdrstop #pragma argsused
WSADATA ws;//информация о сокете
int main() { int sock, listener; struct sockaddr_in addr; char buf[1024]; int bytes_read; if (FAILED (WSAStartup (MAKEWORD( 1,1 ), &ws))) { printf("Error in WSAStartup(...)\n"); return 1; }
listener = socket(AF_INET, SOCK_STREAM, 0); if(listener < 0) { perror("socket"); getch(); exit(1); } addr.sin_family = AF_INET; addr.sin_port = htons(666); addr.sin_addr.s_addr = htonl(INADDR_ANY); if(bind(listener, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("bind"); getch(); exit(2); } listen(listener, 1); while(1) { sock = accept(listener, NULL, NULL); if(sock < 0) { perror("accept"); getch(); exit(3); } while(1) { bytes_read = recv(sock, buf, 1024, 0); if(bytes_read <= 0) break; send(sock, buf, bytes_read, 0); } closesocket(sock); getch(); return 0; }
}
|
|