![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Не сталкивался еще с интернетом в программировании и в этом полный 0.
1) как передать файл через интернет на другой комп 2) как сделать что-то на подобии network-chat из примеров, только для интернета 3) грубо говоря что-то типа Skype/ICQ только в меньших масштабах, только передача сообщений и файлов PS с чего начать и где можно посмотреть примеры |
|
|
![]() |
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
С чего начать: поискать и почитать про сокеты и TCP-соединение
Где точно искать не знаю, поисковики в руки. А то и по этому сайту поиск |
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
1) как передать файл через интернет на другой комп пример examples\network\ftp2) как сделать что-то на подобии network-chat из примеров, только для интернета задай себе вопрос, "что такое интернет? и чем он отличается от локалки используемой в примере" |
|
|
RazrFalcon |
![]()
Сообщение
#4
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Что то особо ничего так и не вышло.
Можно что то конкретней чем "сокеты и TCP-соединение". Так как что то совсем ничего не понятно, я уже молчу про компиляцию. У меня есть текст/файл и я посылаю его как-то куда-то и человек с моей же прогой принимает этот самый текст/файл. Как я вообще узнаю "в сети" он или нет? Как он узнает в сети ли я? Должен ли я знать его IP, так как он у него может быть динамический, что тогда? Ну все в таком духе. Какие то источники есть? Инет и хелп кьютешный не очень прояснили ситуацию. Тут в общем то пока даже не QT а понимание, ну и потом перенос на кьют конечно же. |
|
|
Алексей1153 |
![]()
Сообщение
#5
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, http://ru.wikipedia.org/wiki/TCP
|
|
|
RazrFalcon |
![]()
Сообщение
#6
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, это я читал конечно же уже.
Я так понимаю нужно использовать QTcpServer и QTcpSocket?! Как то... |
|
|
Алексей1153 |
![]()
Сообщение
#7
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, честно, я ещё с этими классами не успел поработать.
Надо тестовый проект накидать попробовать. У тебя заготовки есть ? |
|
|
RazrFalcon |
![]()
Сообщение
#8
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Надо тестовый проект накидать попробовать. У тебя заготовки есть ? Да не особо, фактически ничего. Я же так ничего и не написал до сих пор ![]() Просто кидал примеры с инета, оно не пахало, и я удалял. Есть 2-е проги для которых это как раз и нудно в принципе. Одна из них в общем то Network Chat Example. Его то я и хочу сделать "инетовским". Вторая совсем простенькая загрузка страницы. Так что в этом полный новичек. |
|
|
Алексей1153 |
![]()
Сообщение
#9
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
что-то я на такой ерунде споткнулся, что прям не знаю ))
Раскрывающийся текст
стОит открыть помеченную строчку с new QTcpSocket(this) - компиляторне находит определение класса QTcpSocket, хотя файл подключен. Пробовал и в проект добавлять - одна фигня. Пишет ошибку Цитата :: error: collect2: ld returned 1 exit status в консоли Цитата debug/mainwindow.o:E:\test2/mainwindow.cpp:50: undefined reference to `_imp___ZN10QTcpSocketC1EP7QObject'
collect2: ld returned 1 exit status mingw32-make[1]: *** [debug\test2.exe] Error 1 mingw32-make: *** [debug] Error 2 Процесс "C:/Qt/2010.04/mingw/bin/mingw32-make.exe" завершился с кодом %2. |
|
|
RazrFalcon |
![]()
Сообщение
#10
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Такие вот куски компилятся, тока не понимаю что это дает
|
|
|
Алексей1153 |
![]()
Сообщение
#11
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Такие вот куски компилятся, ну это понятно. Только они не int, а указатели на соответствующие классы, а предопределение классов у меня в хедере.
Но это лишь указатели - они сами по себе не требуют описания класса. А вот стОит начать работать с классом (открыть строку m_pClient=new QTcpSocket(this); ) то начинается фигня. То ли пути где-то ещё надо прописать, но я не нашёл, где вообще, избалован студией, там всё это проще делается )) Сообщение отредактировал Алексей1153 - 13.8.2010, 21:16 |
|
|
RazrFalcon |
![]()
Сообщение
#12
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Как то мудрено все. Неужели все настолько по кривому. Я конечно молчу про пример с Network Chat, там вообще куча всего.
Неужели ни кто подобным не интересовался, аж странно ![]() |
|
|
Алексей1153 |
![]()
Сообщение
#13
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
пример у меня тоже не компилится
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, в pro-файле добавил соответствующий модуль?
|
|
|
Алексей1153 |
![]()
Сообщение
#15
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
нет, конечно. А как его туда вписать )) А автоматом Creator не умеет разве ?
Всё, дотумкал ) Спасибо
но, ведь, это гвоздец, почему всё так неочевидно RazrFalcon, я на сегодня всё, уже спать надо начинать ) Завтра поковыряемся Сообщение отредактировал Алексей1153 - 13.8.2010, 21:30 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#16
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#17
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#18
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, вот накидал, только всё очень по минимуму. По идее, нужно классы производить и там функционал писать.
Тут всё по простому сделано - без индикации состояний, без нормального затенения кнопок и всё такое. Можно запустить два экземпляра программы и соединить между собой - фаервол покажет соединение Можно убедиться в паре программа<->HiperTerminal (или другой терминал, ибо этот жутко глючен) Пример передачи данных не успел - меня гонят гулять с ребёнком )) --аттач удалён как неактуальный-- Сообщение отредактировал Алексей1153 - 15.8.2010, 15:38 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#19
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
нашёл, где в инклудах файлы лежат. А потом посмотрел, как в примерах сделано - оттуда и что в PRO вписать определил а можно было глянуть в справку по модулю, там в подробном описании и говорится о том как его использовать. ![]() |
|
|
RazrFalcon |
![]()
Сообщение
#20
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, спасибо, буду разбираться. Только вот сразу вопрос: клиен подключается ко мне по ip, но а если у меня не статический (у меня статический, но у друга нет, он ко мне конектится вроде бы, а я к нему как?); сколько к серверу может подключится человек?
|
|
|
Алексей1153 |
![]()
Сообщение
#21
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy, я в креаторе полный ещё чайник
![]() клиен подключается ко мне по ip, но а если у меня не статический (у меня статический, но у друга нет, он ко мне конектится вроде бы, а я к нему как?); Тут такая штука. Начнём с того, что мои познания в этих делах несовершенны. Но из того, что мне известно, 0) если ты - сервер, то друг всегда может подключится по твоему IP 1) если сервер - друг, то ему можно зайти на myip.ru и сказать текущий IP . Также ему надо настроить маршрут в модеме(или чего там у тебя) с внешнего IP в локальный адрес 2) можно зарегистрировать бесплатное доменное имя, и специальный сервер будет подставлять под него текущий IP, но детали не знаю - это к знающим людям ) Я просто знаю, что такое возможно, на работе так админ сделал сколько к серверу может подключится человек? столько, сколько разрешишь сервером (метод setMaxPendingConnections()). Верхняя граница ещё может быть прижата пропускной способностью сети ![]() Сообщение отредактировал Алексей1153 - 14.8.2010, 19:42 |
|
|
RazrFalcon |
![]()
Сообщение
#22
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Тут такая штука. Начнём с того, что мои познания в этих делах несовершенны. Ну мои знания ограничены всего 4-мя месяцами, так что я тоже новичок. А с инетом/сетью вообще знаний нет, я имею ввиду именно в программировании. Цитата то ему можно зайти на myip.ru и сказать текущий IP Это понятно, просто интересно как это делают аськи и скайп. ![]() Хотя у них там еще логин-пароль используется. |
|
|
Алексей1153 |
![]()
Сообщение
#23
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#24
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, пока ещё я не добился всего, что хотел, но почти доделал ) Выкладывать сырое не хочу, поэтому завтра. Ещё борюсь с набором сигналов этих классов
|
|
|
Алексей1153 |
![]()
Сообщение
#25
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, вот, что у меня получилось. Потестируй, может ещё глюки найдёшь ))) И всё-таки, хотелось бы потом переделать в виде производных классов, пока некогда
Прикрепленные файлы
|
|
|
RazrFalcon |
![]()
Сообщение
#26
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Потестируй, может ещё глюки найдёшь Тестирую... Пока тока один баг, как и в предыдущем проэкте. 1) почему QT += opengl network, зачем Gl непойму, у меня на него ругается вида :: error: cannot find -lGL Система Ubuntu 10.04. Я то понимаю что его не находит, тока почему не пойму ![]() ![]() Сообщение отредактировал RazrFalcon - 15.8.2010, 15:49 |
|
|
Алексей1153 |
![]()
Сообщение
#27
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
У меня система WXP SP3
Почему ругается - не знаю Попробуй решить проблему "в лоб" - создай новый проект и кинь туда файлы *.h, *.cpp, *.ui из этого ой, "pro" не надо, конечно же )) Сообщение отредактировал Алексей1153 - 15.8.2010, 15:57 |
|
|
RazrFalcon |
![]()
Сообщение
#28
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, я имел ввиду зачем тебе opengl вообще, ты же его не используешь, а решается все просто стиранием его и все пашит.
Просто у меня OGRE движок тоже вечно кричит что нет ligOGL.so.2.0 (при том что он есть) что то в этом духе, вот я и думаю что же я с opengl натворил. |
|
|
Алексей1153 |
![]()
Сообщение
#29
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, это креатор при создании вписал, я вручную только network добавил )
Стёр opengl - тоже компилится и работает ) С классами то разобрался ? |
|
|
RazrFalcon |
![]()
Сообщение
#30
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
С классами то разобрался ? Ну в общем то понятно. Пару вопросов разве что: 1) "включение слушалки" - это что? Проверяем на наличие клиентов? 2) delete m_pServer; - такую запись никогда не встречал. 3) if(!m_pServer)return; - на что проверка?! 4) m_pPeer__=0; - что это делает? 5) я так понял читает только 100 байт? И это только текст. 6) ну и последние, передачу файлов еще ты не писал, по крайней мере я не нашел. Огромное спасибо, буду разбираться дальше. Интересно б присобачить потоковое видео через openCV еще. Но это уже больше к передаче файлов. Сообщение отредактировал RazrFalcon - 15.8.2010, 17:27 |
|
|
Алексей1153 |
![]()
Сообщение
#31
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
включение слушалки когда сокет-сервер создаётся, он инертен, сам по себе он ничего ещё не делает. Когда вызывается listen() , сервер начинает слушать входящие запросы на соединение от клиентов. Причём, обратной дороги нет - он будет слушать до талого снега! Если только не пересоздать хендл сокета в системе (по крайней мере так в винде). В студии я делал это через close()/create() сокета сервера, а в Qt это не прокатит, как так пАрные сокеты убьются. Тут, наверное, достаточно вызвать setMaxPendingConnections(0) для отключения слушалки совсем. Хотя, не проверял, что при этом произойдёт )) delete m_pServer; - такую запись никогда не встречал. это всего лишь оператор C++ , возвращает в кучу память, выделенную под объект оператором new. В библиотеке Qt есть расслабуха - если класс произведён от QObject и имеет родителя, то delete автоматом вызывается для объекта. Но иногда удалить объект надо не затрагивая родитель. if(!m_pServer)return; - на что проверка?! булево выражение (!X) эквивалентно (X==0) m_pPeer__=0; - что это делает обнуляет указатель m_pPeer__. Странный вопрос... я так понял читает только 100 байт? И это только текст. производится попытка чтения из приёмного буфера сокета максимум 100 байтов за раз - да Это количество зависит от задачи, для данного примера сойдёт и константа 100 )) ну и последние, передачу файлов еще ты не писал, по крайней мере я не нашел. так я сделал передачу строки - не нашёл что ли ? А строка - это набор байтов. А файл тоже. Но большие объёмы данных могут потребовать спец-приёмов при передаче - это когда столкнёшься, сам увидишь, пока передавай всё разом ) Как потоковое видео приделать, я не знаю, но суть такая же - передаётся часть видеопотока, потом эта часть проигрывается, а в это время качается очередная часть |
|
|
RazrFalcon |
![]()
Сообщение
#32
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
обнуляет указатель m_pPeer__. Странный вопрос... То есть количество пиров становится 0, отключаем клиентов как я понял. Я имел ввиду логику выражения, то что обнуляем я понял, не понял что.Цитата так я сделал передачу строки - не нашёл что ли ? Ну строку то я нашел, но думал она строго на текст, теперь разобрался.Еще раз спасибо, буду прикручивать сюда что хотел, потом выложу готовый вариант. |
|
|
Алексей1153 |
![]()
Сообщение
#33
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
RazrFalcon |
![]()
Сообщение
#34
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#35
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Расскажи, что именно понятно
![]() |
|
|
RazrFalcon |
![]()
Сообщение
#36
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Расскажи, что именно понятно Понятно ровно столько - сколько нужно. Не люблю уж сильно вникать, хотя может это и проблема. Просто пользуюсь теми методами которые устраивают. Никогда к примеру указателями и структурами не пользовался, не по мне, ищю другие варианты, да и классы не люблю. По крайней мере пока устраивает.![]() |
|
|
Алексей1153 |
![]()
Сообщение
#37
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
RazrFalcon, нууу, крайне неверная позиция
![]() Если ты пишешь на этом языке программы - ты просто обязан хорошо знать эти вещи. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 5.5.2025, 0:21 |