Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2012, 23:26   #11
stdio
Форумчанин
 
Аватар для stdio
 
Регистрация: 14.02.2012
Сообщений: 105
По умолчанию

Всё готово и сервер и клиент есть, как мне теперь сделать так чтоб полученное сообщение ни только отправлялось к клиенту но и выводилось в сервере?

вот пример:
Код:
int bytes_recv;
    while ((bytes_recv = recv(my_sock, &buff[0], sizeof(buff), 0)) &&
    bytes_recv != SOCKET_ERROR) 
    send(my_sock, &buff[0], bytes_recv, 0);
	//cout << my_sock << buff[0] << endl;
stdio вне форума Ответить с цитированием
Старый 05.03.2012, 00:04   #12
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Подробнее пожалуйста: в чем засада?
EUGY вне форума Ответить с цитированием
Старый 05.03.2012, 00:12   #13
stdio
Форумчанин
 
Аватар для stdio
 
Регистрация: 14.02.2012
Сообщений: 105
По умолчанию

это цикл который занимается извлечением сообщений от клиента и возвратом их обратн. так вот мне надо чтоб это сообщение которое поступает от клиента send(my_sock, &buff[0], bytes_recv, 0); ни только отправлялось клиенту обратно но и выводилось у сервера. Если я делаю так cout << buff[0] << endl; то выводится только первая буква сообщения

Код:
while ((bytes_recv = recv(my_sock, &buff[0], sizeof(buff), 0)) &&
    bytes_recv != SOCKET_ERROR) 
	{
    send(my_sock, &buff[0], bytes_recv, 0);
	cout << buff[0] << endl;                // выводим соообщение от клиента
	}
stdio вне форума Ответить с цитированием
Старый 05.03.2012, 00:39   #14
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Похоже на то что в buff - юникодная строка
типа: 'a' 0 'b' 0 'c' 0 0

юникод конечно условно, просто двухбайтовая кодировка

Последний раз редактировалось EUGY; 05.03.2012 в 00:41.
EUGY вне форума Ответить с цитированием
Старый 05.03.2012, 00:45   #15
stdio
Форумчанин
 
Аватар для stdio
 
Регистрация: 14.02.2012
Сообщений: 105
По умолчанию

printf(buff); вот так вот выводит как положено только за сообщением следует непонятная груда символов, как отсечь эти лишние символы ? я так понимаю выводится весь буфер char buff[20 * 1024];
stdio вне форума Ответить с цитированием
Старый 05.03.2012, 00:47   #16
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

а что возвращает recv
EUGY вне форума Ответить с цитированием
Старый 05.03.2012, 01:03   #17
stdio
Форумчанин
 
Аватар для stdio
 
Регистрация: 14.02.2012
Сообщений: 105
По умолчанию

намёк на sizeof(buff) это?
надо как то сделать чтоб длина введённых символов равнялась длине выводимых?
stdio вне форума Ответить с цитированием
Старый 05.03.2012, 01:23   #18
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

что есть строка - массив символов.
Признак окончания ansi-строки - нулевой байт, в двухбайтовой - два нулевых байта. Это называется нуль-терминатор.

Есть char buff[SZ];
Поставь нуль-терминатор в соответствии с bytes_recv.
EUGY вне форума Ответить с цитированием
Старый 05.03.2012, 02:02   #19
stdio
Форумчанин
 
Аватар для stdio
 
Регистрация: 14.02.2012
Сообщений: 105
По умолчанию

Это вот этот символ '\0' ? если да то в данном случае я не знаю куда его ставить
stdio вне форума Ответить с цитированием
Старый 05.03.2012, 02:14   #20
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

buff[bytes_recv] = 0;
printf(buff);

Последний раз редактировалось EUGY; 05.03.2012 в 02:18.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корпоративная система обмена сообщениями Dimka55 C# (си шарп) 1 29.11.2011 11:14
алгоритм для обмена сообщениями bammm PHP 13 02.03.2011 18:26
Вопрос о способе обмена сообщениями Beyounder Общие вопросы .NET 2 02.08.2009 00:40
Delphi. Консольное приложение для работы с txt. файлом MexX Помощь студентам 1 13.05.2009 09:37
Простой клиент обмена сообщениями eks-s Работа с сетью в Delphi 1 04.03.2008 01:03