PDA

Просмотр полной версии : Пропащие Header-Ы


ronald
22.08.2008, 14:12
так-с, пишу прогу по сокетам на с++. Натолкнулся а исходнег, а там #include <sys/types.h>
#include <sys/socket.h>
#include <etinet/in.h>
и прочие Компилятор VS 2005 выдаёт на них ошипки.
удаляю, ставлю другие : ошипки на write bind и прочее. Хэлп, плиз :какие хдэры нужны для сокетов,

slesh
22.08.2008, 14:15
дык у тя исходник под gcc - Линуксовидный компилятор.
Конечно если там нет никаких заморочек, то запросто можешь переписать на win32
попробую заменить на их виндовые аналоги типа

#include <winsock.h>;
#include <windows.h>;
#include <stdio.h>;
#pragma comment (lib,"ws2_32")

St0nX
22.08.2008, 14:20
или на #include <winsock2.h>

ronald
22.08.2008, 14:28
#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 и прочим, помогите плиз переделать

slesh
22.08.2008, 14:34
проверить не могу но примерно так

#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);
};
}

ronald
22.08.2008, 14:43
ошибка с accept(

_antony
22.08.2008, 17:10
#include "stdafx.h"
#include <winsock.h>;
#include <windows.h>;
#include <stdio.h>;
.............................
send (1, buf, from_len,0);
};

вы чего вообще чтоли.

t04
25.08.2008, 20:56
send (1, buf, from_len,0);
жесть....

>>send (s_new, buf, from_len,0);

slesh
26.08.2008, 09:29
Сори за код который кидал, просто сменил имена функций и добавил параметр к send и recv както даже не обратил внимания что с самого начала чуть кривовато было. ;)

De-visible
26.08.2008, 15:50
Касается roland, все коды в тегах [*code]
------
Думаю вопрос решен и тему можно закрыть?....

ronald
03.09.2008, 20:59
кароч делит тему, буду искать курево)))