| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > TCP-передача структуры данных |
| Автор: gordmiand 27.8.2010, 20:12 | ||
Допустим есть структура
Подскажите пож-та программно Почитал в Qt-книге про класс QTcpSocket, но что-то я совсем в этих сетях заплутал… помогите пож-та – очень буду благодарен….. |
| Автор: Abyx 27.8.2010, 20:57 |
| socket() connect() send() socket() bind() listen() accept() recv() гуглите эти функции. |
| Автор: gordmiand 27.8.2010, 22:02 |
| Abyx: дя я не только по гуглу смотрел эти функции, но и по книге, но все равно толком не разобрался - в сетях только-только начинаю делать первые шаги....накидайте хотя бы приблизительный наипростейший примерчик для отсылки-приема указанной выше структуры данных - я буду очень обязан Вам...мне это в Qt надо сделать - я так понимаю с использованием класса QTcpSocket??? |
| Автор: djamshud 27.8.2010, 22:07 |
| http://www.hiraeth.com/alan/tutorials/tcpip/TCP-IP-complete.pdf Вкратце. Но в идеале нужно читать Стивенса "Unix Network Programming". После этого можно писать хоть на Qt, хоть на дотнете. Добавлено через 3 минуты и 47 секунд К тому же, насколько я знаю, большая часть сетевой инфраструктуры винды была честно взята из FreeBSD. И комментарий Abyx , который виндузятник, это частично подтверждает: перечисленные им функции - часть POSIX и BSD. |
| Автор: gordmiand 27.8.2010, 22:22 |
| djamshud: во-первых Ваша ссылка выдает "404 File not found" во-вторых - мне надо под винду написать такой обмен, у меня есть такая рабочая программа, но под линуксом - в ней используются файлы sys/socket.h, sys/ioctl.h и arpa/inet.h, которых нет в винде…на какие виндовые файлы-аналоги мне можно заменить указанные выше файлы или как быть вообще? |
| Автор: djamshud 27.8.2010, 22:25 |
| http://www.hiraeth.com/alan/tutorials/tcpip/tcpip.html Попробуйте эту. Там ссылка на pdf. Если не откроется, проблема в ваших интернетах. >на какие виндовые файлы-аналоги мне можно заменить указанные выше файлы или как быть вообще? Abyx перечислил вам названия функций, почему бы не обратиться к документации msdn? Добавлено через 35 секунд Но у вас вообще нет понимания сетей, поэтому нужно читать Стивенса. |
| Автор: Abyx 27.8.2010, 22:27 |
| А вообще по хорошему надо использовать boost.asio . Но вы его не осилите. |
| Автор: SVN74 27.8.2010, 22:34 |
| Для Вас лучший вариант - "Самоучитель игры на WINSOCK" http://citforum.ru/book/cook/winsock.shtml |
| Автор: gordmiand 27.8.2010, 22:39 |
| djamshud: у меня в линукс-проге тоже используются все функциии, перечисленные Abyx-ом выше - просто я не могу разобраться с этими 3 файлами из системной include-папки линукса...должны же быть их аналоги и в винде... |
| Автор: djamshud 27.8.2010, 22:44 |
| gordmiand, google: msdn connect -> http://msdn.microsoft.com/en-us/library/ms737625%28VS.85%29.aspx Это документация. Там даже пример есть. Неужели так сложно? |
| Автор: gordmiand 27.8.2010, 22:49 |
| djamshud |
| Автор: djamshud 27.8.2010, 22:54 |
| gordmiand, думайте. |
| Автор: gordmiand 27.8.2010, 23:01 |
| djamshud: а если я Вам покажу файлы проги - Вы сможете мне более предметно помочь? ведь знающему человеку это одна (две) минута |
| Автор: Abyx 28.8.2010, 00:23 |
| gordmiand, вам надо в центр помощи. |
| Автор: boostcoder 28.8.2010, 03:12 | ||||
ессно! это единственное перспективное направление. вот. даже проверил
|
| Автор: Abyx 28.8.2010, 10:47 |
| boostcoder, что-то кода у вас многовато. и сервера нет. |
| Автор: boostcoder 28.8.2010, 15:50 |
покажите что лишнее. сервер есть. но я его не стал выкладывать. пусть ТС хоть над чем-то подумает |
| Автор: Abyx 28.8.2010, 16:04 |
| 1. POD-типы без полей-указателей можно передавать как есть. Алсо ТС не спрашивал как сериализовать структуру. 2. Если вы коннектитесь по IP, то резолвить ничего не надо. 3. tmperr не нужна. |
| Автор: boostcoder 28.8.2010, 16:10 |
это ИМХО. я ни ТС. и не позволил бы себе "так" написать. пример? ну да. |
| Автор: Abyx 28.8.2010, 19:13 |
socket.connect(boost::asio::ip::tcp::endpoint(boost::asio::ip::address_v4::from_string(ip), port)); |
| Автор: boostcoder 28.8.2010, 19:15 |
| спасибо |
| Автор: gordmiand 29.8.2010, 18:16 |
| Abyx: а где здесь центр помощи?...что-то никак не найду его.... |
| Автор: boostcoder 29.8.2010, 18:38 |
а зачем тебе? половину кода тебе бесплатно написали Добавлено через 23 секунды напиши кому-нибудь из этой темы в личку. |
| Автор: Abyx 29.8.2010, 19:15 |
и бюджет сразу напишите. |
| Автор: gordmiand 29.8.2010, 21:24 |
| Abyx: бюджет? а как же бескорыстная взаимопомощь, оказываемая на данном форуме? сегодня ты мне помог, а завтра - я тебе.... |
| Автор: Addidas 6.10.2010, 19:40 |
| Думаю товарищу Abyx помощь может не понадобится.. |
| Автор: bigbuka 6.10.2010, 23:08 |
| как по мне так простой memcpy в массив unsigned char потом обычными сокетами передать все это дело и на клиентской стороне тотже memcpy в структуру |