| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > TCP/IP компоненты, сеть, клиент_сервер |
| Автор: rthsobakas 12.2.2009, 22:02 |
| Возможно тема не в тему, так как есть отдельная тема по СЕТИ. Но меня интересует конкретно билдер... Вообщем ситуация такая. Нужно написать прогу типо чата( клиент\ сервер) и осуществить обмен фаилами(реализовать). Есть ли в какой нить вкладке политра компонентов, компонент работающий с ТЦП ИП? С чего вообще начать создание такой проги? Есть может примеры у кого? Читаю Йон Снейдер - Эффективное программирование TCP-IP(то есть к нему посылать не надо меня)...и в гугл тоже)) Просто поделитесь опытом работы с тцп ип компонентами из палитры если они есть. |
| Автор: Dmi3ev 13.2.2009, 12:18 | ||
Учу работать с C++Builder. Допустим я не знаю компонент ваще, ваще ничего не знаю, тогда: 1) в главном меню окна находишь View 2) потом во View находишь Component List 3) компоненты начинаются с T (обычно), поэтому ты вводишь T, затем вводишь TCP (ты же этого хотел), те в строке должно быть TTCP и, о чудо, он сам подсветил тебе компонент... А если знать еще, что есть и TIDTCP (компоненты INDY), то можно и это ввести... он сам тебе найдет))) круто? да? А после того как он это все находит, можно еще и разобраться где это такое есть? на каких вкладках... 4) осталось дело за малым, научиться пользоваться поиском на форуме, даю 100%, что здесь есть примеры обмена данными по сети, причем, как через компоненты, так и программно, а если гуглом воспользоваться, то ваще чума будет, там можно найти примеры, которые передают на другой комп изображение с веб-камеры и многое другое... |
| Автор: Mpak 14.2.2009, 15:03 |
| rthsobakas, может пригодиться в твоих начинаниях. Вот не плохой примерчик под 6 билдер из книги Шамуса "С++ Builder Broland Developer Studio 2006". |
| Автор: rthsobakas 14.2.2009, 20:05 |
| mrbrooks, читаю Йон Снейдер - Эффективное программирование TCP-IP . Там как раз про сокеты. Тока там для Юникс, но под винду переделать можно легко, разница в обозначениях. Mpak, ага сспасибо. посмотрю. |
| Автор: rthsobakas 22.2.2009, 13:23 |
| Dmi3ev, я использую 2009 builer c++ , по крайней мере там в view нет component list, и в турбо эксплоере с++ тоже не было кстати. Нашел http://www.realcoding.net/article/view/4341 там В c++builder 6 для передачи какой-либо информации по сети удобнее всего использовать компоненты закладки internet: tclientsocket и tserversocket. Чтобы лучше разобраться в работе этих компонентов я предлагаю написать простенький сетевой чат, на примере которого можно будет легко увидеть компоненты в действии. В 2009 билдере назакладке ИНТЕРНЕТ нету tcpclientsocket u tcpserversocket! Там есть что то похожее на них так это разве что TCPclient TCPserver. Плохо то что эти компоненты не те явно. Это видно из СОБЫТИЙ(event) . Некоторых пунктов нет. Например onconnect у тцпклиента. + Нету tcpserver1->socket->... то есть чат е реально посторить из за недостатка информации. Может tcpclientsocket u tcpserversocket в другой вкладке ? блин нафига с изменение версии билдера менять все. запарили. Добавлено через 5 минут и 49 секунд вот фаил |
| Автор: rthsobakas 22.2.2009, 15:03 |
| блин капец... серверсокет и клиентсокет оказывается дополнительно устанавливать надо было(нашел на каком то форуме). Вообщем чат написал вроде, но проблемы скодировкой появились. На клиенте пишу текст rthsobakas:: Hello world! на сервере получаю 瑲獨扯歡獡㨺效汬潷汲Ⅴ Че за японский перевод? ТИпо че то с кодировкой сделать надо я полагаю! что? подскажите |
| Автор: SVN74 22.2.2009, 19:34 | ||
L"Hello world!" |
| Автор: rthsobakas 22.2.2009, 19:49 |
| SVN74, Что? Я кажись понял в чем проблема, подскажите как UnicodeString конвертировать в Ansistring |
| Автор: SVN74 22.2.2009, 22:15 | ||||||
Ну вообще то в C++ Builder 2009 не принято использовать AnsiString, оно используется только для совместимости, но раз уж пришлось использовать AnsiString, то и конвертацию предусмотрели...
Можно также без явной конвертации...
А при присвоении кода надо так... UnicodeString Ustr = L"Привет, это я"; |
| Автор: rthsobakas 23.2.2009, 09:58 | ||||
| SVN74, это кнопка отправить в Едит2-ник в Едит1-текст сообщения
То есть ->SendText((Edit2->Text+"::"+Edit1->Text)); заменить на ->SendText(L(Edit2->Text+"::"+Edit1->Text)); Я правильно понял? |
| Автор: SVN74 23.2.2009, 21:26 | ||||
Нет, нет... Если это пишется под C++ Builder 2009, то все его компоненты уже несут в себе формат UnicodeString... Вот маленький примерчик (примерно) пересылки сообщений в Indy 10.
А вообще то лучше использовать <WinSock2.h>
http://www.citforum.ru/book/cook/winsock.shtml |
| Автор: rthsobakas 28.2.2009, 21:35 | ||
SVN74,
А что сделать чтобы при компиляции не юникод был, а стандарнтый асни??? Может в опциях где то? Или каждый раз конвертировать? |
| Автор: SVN74 28.2.2009, 23:04 | ||
Unicode необходим для совмещения языков в разных стандартах стран и BCB 2009 полностью переведен на данный стандарт, поэтому придется перестраиваться полностью на Unicode, Ansi поддерживается только для совместимости... |