Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с сокетом 
:(
    Опции темы
esenin
Дата 19.11.2005, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 4.10.2005

Репутация: нет
Всего: нет



Код

#include    <winsock2.h>

#define ADDRES 127.0.0.1

char message[] = "Hello!\n";
char buf[sizeof(message)];

int sockfd;
struct sockaddr_in saddr;
WSADATA wsa;

int main() /// сокет
{

WSAStartup(0x101, &wsa);
    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
        return 1;
    }
    memset(&saddr, 0, sizeof(saddr));
    saddr.sin_addr.s_addr = inet_addr("ADDRES");
    saddr.sin_port = htons(80);
    saddr.sin_family = AF_INET;

if (connect(sockfd, (struct sockaddr *)&saddr, sizeof(saddr))) {

        return 2;
    }
    send(sockfd, message, sizeof(message), 0);
    recv(sockfd, buf, sizeof(message), 0);
    
    printf(buf);
    closesocket(sockfd);
    return 0;
}










подскажите что неправильно?


 ! 
 

1. Тема была в неправильном разделе -- учтите.
2. Оформляйте код тегами [code=cpp][/code]
Chipset


Это сообщение отредактировал(а) chipset - 19.11.2005, 07:16
PM MAIL   Вверх
chipset
Дата 19.11.2005, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



А что неправильно, гм? Тут же не компиляторы всё-таки а люди, может скажешь как проявляеться ошибка?


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
esenin
Дата 19.11.2005, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 4.10.2005

Репутация: нет
Всего: нет



ок. я учту.

целью было создать клиетта отсылающего мессагу на заданный порт...

при линовке выкатывает следущее

hello error LNK2001: unresolved external symbol "int __stdcall closesocket(unsigned int)" (?closesocket@@$$J14YGHI@Z)

hello error LNK2001: unresolved external symbol "int __stdcall connect(unsigned int,struct sockaddr const *,int)" (?connect@@$$J212YGHIPBUsockaddr@@H@Z)

hello error LNK2001: unresolved external symbol "unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z)

hello error LNK2001: unresolved external symbol "unsigned long __stdcall inet_addr(char const *)" (?inet_addr@@$$J14YGKPBD@Z)

hello error LNK2001: unresolved external symbol "unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)

hello error LNK2001: unresolved external symbol "int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z)

hellofatal error LNK1120: 6 unresolved externals





PM MAIL   Вверх
JoyEx
Дата 19.11.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: нет
Всего: 12



1) После #include вставь #pragma comment (lib, "Ws2_32.lib")
2) #define ADDRES "127.0.0.1"
3) = inet_addr(ADDRES);
4) в firewall своей программе дай зеленый свет



--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
chipset
Дата 19.11.2005, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



Цитата(JoyEx @ 19.11.2005, 02:11)
2) #define ADDRES "127.0.0.1"

Хммм? Зачем, если уже скобки есть тут: saddr.sin_addr.s_addr = inet_addr("ADDRES");


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
esenin
Дата 21.11.2005, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 4.10.2005

Репутация: нет
Всего: нет



ок.. спасибо...
у меня возникла новая проблема
не получается создать более одного соединения на хост.. делаю так:

Код


int main() /// сокет
{
int i;
WSAStartup(0x101, &wsa);
for (i = 0; i < 3; i++){
    if ((sockfd[i] = socket(AF_INET, SOCK_STREAM, 0))< 0)
        return 1;
    }
    memset(&saddr, 0, sizeof(saddr));
    saddr.sin_addr.s_addr = inet_addr(ADDRES);
    saddr.sin_port = htons(80);
    saddr.sin_family = AF_INET;

    if connect(sockfd[i], (struct sockaddr *)&saddr, sizeof(saddr)){
        return 2;
    }
    send(sockfd, message, sizeof(message), 0);
    recv(sockfd, buf, sizeof(message), 0);
    
    printf(buf);
    closesocket(sockfd);
    return 0;
}





ругается error C2109: subscript requires array or pointer type
на строки
if ((sockfd[i] = socket(AF_INET, SOCK_STREAM, 0))< 0)
if connect(sockfd[i], (struct sockaddr *)&saddr, sizeof(saddr))




PM MAIL   Вверх
esenin
Дата 21.11.2005, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 4.10.2005

Репутация: нет
Всего: нет



подскажите где зашпар... smile
PM MAIL   Вверх
esenin
Дата 22.11.2005, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 4.10.2005

Репутация: нет
Всего: нет



хоть наводку дайте
PM MAIL   Вверх
Aleksandor
Дата 29.11.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: нет
Всего: 12



Даю наводку smile
SOCKET sockfd[3]; // array





--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
Kill_em_all
Дата 29.11.2005, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.4.2005

Репутация: нет
Всего: нет



А потом добавляешь массив в набор и ждешь
от них сообщений функцией select.
Почитать про это можно в книге Фленова C++ глазами
хакера
PM MAIL   Вверх
Vaulter
Дата 19.12.2005, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



smile хакер...


--------------------
PM MAIL WWW ICQ   Вверх
Kill_em_all
Дата 20.12.2005, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 2.4.2005

Репутация: нет
Всего: нет



Цитата(Vaulter @ 19.12.2005, 14:13)
хакер...

Ты это к чему?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.