Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Пропащие Header-Ы (https://forum.antichat.xyz/showthread.php?t=81926)

ronald 22.08.2008 14:12

Пропащие Header-Ы
 
так-с, пишу прогу по сокетам на с++. Натолкнулся а исходнег, а там #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]
------
Думаю вопрос решен и тему можно закрыть?....


Время: 02:26