Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 815
от 08.08.2007, 01:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 497, Экспертов: 60
В номере:Вопросов: 2, Ответов: 4


Вопрос № 97043: Здравствуйте! Недавно начал заниматься сокетами (WinSocket) и никак не могу реализовать ни одно программу на основе клиент-сервер. У меня большая к Вам просьба: если у кого есть какой либо исходник пришлите мне его с подробными описанием каждого кода...
Вопрос № 97157: Здравствуйте эксперты!Скажите как можно преобразовать тип char(char[200]) к типу LPCSTR.Заранее спасибо...

Вопрос № 97.043
Здравствуйте! Недавно начал заниматься сокетами (WinSocket) и никак не могу реализовать ни одно программу на основе клиент-сервер. У меня большая к Вам просьба: если у кого есть какой либо исходник пришлите мне его с подробными описанием каждого кода. А то я скачивал кучу исходников из интернета и не один из них не работает. Желателно чтоо бы применялся класс "СSocket", а то просто Socket слишком длинным и непонятный ( впрочим слишком старый). Ненадо огромной программы мне достаточно будет саммой маленькой, что бы она например просто обменивалась короткими сообщениями. Я понимаю что навязал большую кучу непонятного. Но прошу Вас что бы вы мне помогли. Когда будите описывать код пожалуйста пишите все по подробнее, я хочу полностью понять суть его работы. Заранее спасибо.
С уважением Адам.
Отправлен: 02.08.2007, 01:24
Вопрос задал: Шахабов Адам Хаважиевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Шахабов Адам Хаважиевич!
На MSDN вы можете найти достаточно много информации по классу CSocket. Например вот здесь :

http://msdn2.microsoft.com/en-us/library/hz0wky60(VS.80).aspx

приводится последовательность действий для установки связи между клиентом и сервером на CSocket объектах. Также различные вопросы по сетевому программированию можно найти на форуме RSDN посвященному этой теме

http://www.rsdn.ru/forum/group/network.aspx
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 02.08.2007, 04:09


Вопрос № 97.157
Здравствуйте эксперты!Скажите как можно преобразовать тип char(char[200]) к типу LPCSTR.Заранее спасибо
Отправлен: 02.08.2007, 23:39
Вопрос задал: Hunter20 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ilkras
Здравствуйте, Hunter20!
очень просто: LPCSTR p = (LPCSTR)(char)(char[200]); , в предположении что вы забыли поставить скобки.
кроме того, выражение char(char[200]) мягко говоря некорректно. Дело в том, что char[200] представляет собой указатель на выделенный на стеке массив из 200 байт. добавление (char) - кастинг (преобразование типа) к типу char - меняет смысл выражения. В результате вы теряете выделенный массив и пользуетесь указателем для хранения одного байта.
Если же вы не забыли поставить скобки, то выражение просто неправильно.
Тогда можно предположить, что вы хотели определить указатель на строку. Например так:
char myStr[200];
LPCSTR myPointer = (LPCSTR)myStr;
Если не ответил на ваш вопрос - пишите в форум или письмом.
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 03.08.2007, 01:00
Оценка за ответ: 5
Комментарий оценки:
Спасибо
P.S.Я имел ввиду тип char вообще,а char[200]
как пример в частности

Отвечает: Терсков Сергей
Здравствуйте, Hunter20!
Как я понимаю, вы хотите сделать преобразование массива типа char (с размером 200) к типу LPCSTR. Только это не тип, а всего лишь переопределение const char *. Расшифровывается LPCSTR как long const pointer to string (нелюбимая многими нотация WINAPI). Поэтому само преобразование будет выглядеть так:

char str[200];
LPCSTR lpsz = (LPCSTR) str;

или

char str[200];
LPCSTR lpsz = static_cast(str);

Стандарт С++ советует использовать второй вариант (хотя он и более громоздкий).
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 03.08.2007, 02:59
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо
P.S.подошёл только первый вариант

Отвечает: kool
Здравствуйте, Hunter20!
Вот так, например

char y[200],z;
LPCSTR t=y;
t=&z;

Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 03.08.2007, 18:33
Оценка за ответ: 5
Комментарий оценки:
Спасибо.Просто я и сам пробовал так сделать,но несрабатывало.Сейчас всё нормально работает.Ещё раз спасибо!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.54 beta от 01.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное