информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаГде водятся OGRыЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] использование winsock. компилятор не может найти библиотеки 20.07.01 23:15  
Автор: 2 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
использование winsock. компилятор не может найти библиотеки
данный пример не хочет компилироватся так как компилятор не может
найти указанные библиотеки. что делать
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <memory.h>

#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);
};
}
[Win32] использование winsock. компилятор не может найти библиотеки 21.07.01 00:25  
Автор: eVAL. Статус: Незарегистрированный пользователь
<"чистая" ссылка>
А ты под какую платформу пишешь если *NIX то все должно работать ну а если под WIN то как я понимаю достаточно вместо
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <netdb.h>

#include "winsock.h"
[Win32] после исправления появились 4 ошибки. ели не сложно помогите 21.07.01 00:41  
Автор: 2 Статус: Незарегистрированный пользователь
<"чистая" ссылка>

ошибки вот такие:
(23) : error C2664: 'accept' : cannot convert parameter 2 from 'struct sockaddr_in *' to 'struct sockaddr *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
(24) : error C2065: 'write' : undeclared identifier
(25) : error C2065: 'read' : undeclared identifier
(28) : error C2065: 'close' : undeclared identifier
текст программы приведен выше
[Win32] после исправления появились 4 ошибки. ели не сложно помогите 21.07.01 03:39  
Автор: c0x@mail.ru Статус: Незарегистрированный пользователь
<"чистая" ссылка>
используй <winsock2.h> и не забудь сказать линкеру о существовании wsock32.lib


>
> ошибки вот такие:
> (23) : error C2664: 'accept' : cannot convert parameter 2
> from 'struct sockaddr_in *' to 'struct sockaddr *'
> Types pointed to are unrelated; conversion requires
> reinterpret_cast, C-style cast or function-style cast
> (24) : error C2065: 'write' : undeclared identifier
> (25) : error C2065: 'read' : undeclared identifier
> (28) : error C2065: 'close' : undeclared identifier
> текст программы приведен выше
[Visual C++ 6.0] Всеравно не хочет говорит что неизвесные функции хоть стреляй 21.07.01 14:02  
Автор: 2 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Всеравно не хочет говорит что неизвесные функции хоть стреляй
Visual C++ 6.0
[Visual C++ 6.0] Всеравно не хочет говорит что неизвесные функции хоть стреляй 21.07.01 20:59  
Автор: eVAL. Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Если уж очень хочется WinSock2 то определяется это так(чтоб в настройках не лазить)
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
[Visual C++ 6.0] Гы-гы ламаки собрались :))))))))) 21.07.01 21:11  
Автор: any body Статус: Незарегистрированный пользователь
<"чистая" ссылка>
какой же это Visual C++ 6.0?
суксь на вас всех
Хммм интересное высказывание... 22.07.01 00:33  
Автор: eVAL. Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Чево тут интересного. Этож GNU C - язык для пИнгвинов :) 22.07.01 00:44  
Автор: any body Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Хммм не знал что GNU C - это язык... Всегда думал что компилятор... 22.07.01 03:20  
Автор: eVAL. Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Нет, дружок. Года 2 назад пингвины его переименовали :((( 22.07.01 03:46  
Автор: any body Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[Win32] после исправления появились 4 ошибки. ели не сложно помогите 21.07.01 13:33  
Автор: eVAL. Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> используй <winsock2.h> и не забудь сказать линкеру о
> существовании wsock32.lib

Хмм а зачем же сразу WinSock2?
Вот как надо
{
ULONG ulAddress;
HOSTENT *ptrHost;
SOCKET s;
SOCKADDR_IN sin;

if ((s = socket(AF_INET, type, NULL))== INVALID_SOCKET) goto goto_on_error;

ptrHost = gethostbyname(addr);
if (!ptrHost) goto goto_on_error;
memcpy(&sin.sin_addr, ptrHost->h_addr_list[0], sizeof(IN_ADDR));

sin.sin_family = AF_INET;
sin.sin_port = htons(port);

if (connect(s,(PSOCKADDR)&sin,sizeof(SOCKADDR_IN))!=0) goto goto_on_error;
......
......
......
......
goto_on_error:
\\Ошибка типа

Примать данные - recv(), посылать send(), закрыть сокет closesocket()
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach