так-с, пишу прогу по сокетам на с++. Натолкнулся а исходнег, а там #include <sys/types.h> #include <sys/socket.h> #include <etinet/in.h> и прочие Компилятор VS 2005 выдаёт на них ошипки. удаляю, ставлю другие : ошипки на write bind и прочее. Хэлп, плиз :какие хдэры нужны для сокетов,
дык у тя исходник под gcc - Линуксовидный компилятор. Конечно если там нет никаких заморочек, то запросто можешь переписать на win32 попробую заменить на их виндовые аналоги типа #include <winsock.h>; #include <windows.h>; #include <stdio.h>; #pragma comment (lib,"ws2_32")
Исправил код сервера #include "stdafx.h" #include <winsock.h>; #include <windows.h>; #include <stdio.h>; #pragma comment (lib,"ws2_32") #define SRV_PORT 1234 #define BUF_SIZE 64 #define TXT_QUEST "Who are you?\n" main () { int s, s_new; int from_len; char buf[BUF_SIZE]; struct sockaddr_in sin, from_sin; s = socket (AF_INET, SOCK_STREAM, 0); memset ((char *)&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = SRV_PORT; bind (s, (struct sockaddr *)&sin, sizeof(sin)); listen (s, 3); while (1) { from_len = sizeof(from_sin); s_new = accept (s, &from_sin, &from_len); write (s_new, TXT_QUEST, sizeof(TXT_QUEST)); from_len = read (s_new, buf, BUF_SIZE); write (1, buf, from_len); shutdown (s_new, 0); close (s_new); }; } проблемы с close, write и прочим, помогите плиз переделать
проверить не могу но примерно так Code: #include "stdafx.h" #include <winsock.h>; #include <windows.h>; #include <stdio.h>; #pragma comment (lib,"ws2_32") #define SRV_PORT 1234 #define BUF_SIZE 64 #define TXT_QUEST "Who are you?\n" main () { int s, s_new; int from_len; char buf[BUF_SIZE]; struct sockaddr_in sin, from_sin; s = socket (AF_INET, SOCK_STREAM, 0); memset ((char *)&sin, '\0', sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = SRV_PORT; bind (s, (struct sockaddr *)&sin, sizeof(sin)); listen (s, 3); while (1) { from_len = sizeof(from_sin); s_new = accept (s, &from_sin, &from_len); send (s_new, TXT_QUEST, sizeof(TXT_QUEST),0); from_len = recv (s_new, buf, BUF_SIZE,0); send (1, buf, from_len,0); shutdown (s_new, 0); closesocket (s_new); }; }
Code: #include "stdafx.h" #include <winsock.h>; #include <windows.h>; #include <stdio.h>; ............................. send (1, buf, from_len,0); }; вы чего вообще чтоли.
Сори за код который кидал, просто сменил имена функций и добавил параметр к send и recv както даже не обратил внимания что с самого начала чуть кривовато было.