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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создадим консольное приложение, с применением ООП 
:(
    Опции темы
SparF
Дата 21.1.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 14.9.2006
Где: Санкт-Петербург/М осква

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



Sergio, доки читать надо  smile 
Цитата

     The call returns -1 on error.  If it succeeds, it returns a non-negative
     integer that is a descriptor for the accepted socket.

иначе говоря accept возвращает сокет с которого нужно осуществлять чтение
Код

        if ((new_fd = accept(mySocket, (struct sockaddr *)&their_addr,
                                                       &sin_size)) == -1) {
            perror("accept");
            continue;
        }

кроме этого - если ты оставишь все как есть, то accept перепишет твою AdressInfo информацией об удаленном клиенте -- туда пишутся данные об удаленной машине

Мой тебе совет, досконально изучи
пример клиент/сервера

Добавлено @ 18:14 
И не пиши код, до тех пор пока ты не знаешь что означает каждый символ из примитивного примера и как этот пример работает.


--------------------
Люди, не пользуйтесь пиратским программным обеспечением - переходите на Linux!
PM MAIL ICQ   Вверх
Sergio
Дата 21.1.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Прочитал я в доках, что после виполнения функции  accept(mySocket, (struct sockaddr *)&their_addr,    &sin_size)), сервер сохраняет адрес клиента в структуре their_addr. Помогите найти где именно... А то я не нашёл. Спасибо.
Думал что здесь (their_addr.sin_addr.s_addr) но выводить какоё-то непонятное число smile 




Это сообщение отредактировал(а) Sergio - 22.1.2007, 00:28
PM MAIL ICQ   Вверх
ptr
Дата 22.1.2007, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Sergio @  21.1.2007,  05:27 Найти цитируемый пост)
Хотел проверить возращаемые ошибки Вызвал две "прослушки" сразу но они вернули два нуля. Почему? А должно ведь вернуть ноль и значение ошибки.

Показывай весь код.

Цитата(SparF @  21.1.2007,  21:05 Найти цитируемый пост)
Sergio, доки читать надо   Цитата     The call returns -1 on error.  If it succeeds, it returns a non-negative     integer that is a descriptor for the accepted socket.иначе говоря accept возвращает сокет с которого нужно осуществлять чтение

SparF, не надо смешивать Windows и *nix. В Windows, например, accept возвращает INVALID_SOCKET.

Цитата(Sergio @  21.1.2007,  22:02 Найти цитируемый пост)
сервер сохраняет адрес клиента в структуре their_addr.

Код

inet_ntoa(their_addr.sin_addr)


Это сообщение отредактировал(а) ptr - 22.1.2007, 08:07


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
Sergio
Дата 27.1.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Возникла проблема. Как передать структуру? Тоесть я хочу передать пакет где будет:
имя  клиента
сообщение
Ip клиента

Сначала думал это всё запихать в массив чаров и передавать, но потом передумал, так как надо ставить какие-то ограждения(для сортировки на сервере): (/сообщение/имя  клиента/Ip клиента/) а я не хочу ограничивать пользователя какими-то символами. Что мне делать? Как мне быть? smile 

Это сообщение отредактировал(а) Sergio - 27.1.2007, 00:46
PM MAIL ICQ   Вверх
Romikgy
Дата 27.1.2007, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Sergio @  26.1.2007,  23:39 Найти цитируемый пост)
Как передать структуру? 

по сети?
тогда 
Цитата(Sergio @  26.1.2007,  23:39 Найти цитируемый пост)
всё запихать в массив чаров и передавать


Цитата(Sergio @  26.1.2007,  23:39 Найти цитируемый пост)
Что мне делать? Как мне быть?

длины строк передавай (кол-во букф)


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
witex
Дата 27.1.2007, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



привельно Ромик говорит! Структуру передаёшь через массив чаров, а принимающая сторона опять её превращает в структуру, вот и всё!
Код

send(my_sock,(const char*)mystruct,syzeof(ьныекгсе),0);

Так и файлы передаются и всё подрят! Сам вначале парился! Но тут на форуме и решили проблему!
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. 
PM MAIL   Вверх
Sergio
Дата 30.1.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Вот что я написал:
Код

struct _paket {
      char msg[50] = {"Hello world!"};
      int user = 10;
  };

_paket paket;

Потом:
Код

 send(mySocket,(char*)&paket,sizeof(paket),0); 

Какая-то ошибка smile 
И еще вопрос: как принимать структуру? Что чему присваивать?

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


Бывалый
*


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

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



Код

send(mySocket,(const char*)&paket,sizeof(paket),0); 

выше же написал!
--------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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