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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> неработает send() 
V
    Опции темы
Townsmen
Дата 4.9.2011, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Данные с клиента получаю все ОК... а отправить не могу клиенту, cnt==-1
Может я что-то не то делаю, где ошибка?

Код:
Код

#include <iostream>
#include <windows.h>
using namespace std;

bool SendString(SOCKET s, char *str) {
    int cnt=send(s,(char*)&str,strlen(str),0);
    cout << cnt << endl;
    if (cnt==SOCKET_ERROR) return(false); else return(true);
    }

int main() {

            WSADATA w;
            SOCKET s;
            char szRecvBuff[12];
            int ret;
int error = WSAStartup (0x0202, &w);
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_port = htons (6000);
addr.sin_addr.s_addr = htonl (INADDR_ANY);
s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
bind(s, (LPSOCKADDR)&addr, sizeof(addr));
listen(s, 1);
SOCKET accepted = accept(s, NULL, NULL);
while (true)
    {
    ret = recv(accepted, szRecvBuff, sizeof(szRecvBuff), 0);
    if (ret>1) {
        SendString(s, "hello");
        cout << szRecvBuff << endl;
    }
    }
return 0;
}



PM MAIL   Вверх
boostcoder
Дата 4.9.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



что в errno ?
PM WWW   Вверх
Townsmen
Дата 4.9.2011, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



я работаю в Visual C++, как здесь можно посмотреть код ошибки?
PM MAIL   Вверх
boostcoder
Дата 4.9.2011, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(Townsmen @  4.9.2011,  22:56 Найти цитируемый пост)
как здесь можно посмотреть код ошибки? 

как обычно. либо GetLastError()
PM WWW   Вверх
Townsmen
Дата 4.9.2011, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

как обычно. либо GetLastError()


извините, я не понимаю что Вы имеете в виду "как обычно либо GetLastError()"
я откомпилировал без ошибок, а как посмотреть ошибку при тестировании я не знаю smile я только начинающий

Добавлено через 3 минуты и 6 секунд
можно подробней?
PM MAIL   Вверх
boostcoder
Дата 4.9.2011, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



функцию SendString() измени так:
Код

bool SendString(SOCKET s, char *str) {
   int cnt=send(s,(char*)&str,strlen(str),0);
   cout << cnt << endl;
   if (cnt==SOCKET_ERROR) {
      cout << "error: " << GetLastError() << endl;
      return(false);
   } else
      return(true);

}


и покажи вывод.
PM WWW   Вверх
Townsmen
Дата 4.9.2011, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вывод: error: 10057




PM MAIL   Вверх
boostcoder
Дата 4.9.2011, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(Townsmen @  4.9.2011,  23:38 Найти цитируемый пост)
error: 10057

ну вот ;)
http://support.microsoft.com/kb/839503
PM WWW   Вверх
Townsmen
Дата 5.9.2011, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



получается односторонняя коммуникация smile 
уже пробовал менять порт, всё равно без изменений...
смотрел на форумах: пишут что ошибка возникает после отключения сокета или отвергания отправки

может ето потому что у меня клиент написан на action script 3 ?
PM MAIL   Вверх
boostcoder
Дата 5.9.2011, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



Цитата(Townsmen @  5.9.2011,  00:11 Найти цитируемый пост)
может ето потому что у меня клиент написан на action script 3 ?

а клиент не отключается раньше чем этот код успевает отработать?
PM WWW   Вверх
Townsmen
Дата 5.9.2011, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



клиент постоянно подключен и отправляет не одно сообщение, а несколько
вывод такой:
-1
error: 10057
dssd

-1
error: 10057
dsdsds

-1
error: 10057
dsdsd


после того как я послал 3 сообщения: dssd, dsdsds, dsdsd
завтра попробую другой клиент, может ето что-то на стороне клиента не то...
PM MAIL   Вверх
Олег2005
Дата 6.9.2011, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

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



listen(s, 1);
Попробуйте
listen(s, 5);
При единице очередь маловата.
PM MAIL WWW MSN   Вверх
Townsmen
Дата 6.9.2011, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сделал listen(s, 5); всеравно без изменений smile 

Какой Lib нужно подключать Ws2_32.lib или WSOCK32.LIB ? Пробовал по очереди, безрезультатно...

Может у кто-то поможет своим рабочим исходником, а я уже переделаю?
PM MAIL   Вверх
boostcoder
Дата 7.9.2011, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

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



выложи полностью код клиента и сервера.
PM WWW   Вверх
Townsmen
Дата 7.9.2011, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



код сервера в первом посте.
клиент на AS3 прикрепил

Добавлено через 7 минут и 42 секунды
я только начинаю осваивать сокеты, по этому клиент можно любой подключать

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  socketsTut.fla 96,02 Kb
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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