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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2012, 15:43   #1
Fizerator
Пользователь
 
Регистрация: 15.01.2011
Сообщений: 27
По умолчанию Открытый сокет

Здравствуйте! Я столкнулся с такой проблемой:
Написал программу которая подключается к серверу по tcp/ip соединению!
Использую INDY 9, и компонент IdTcpClient! Но, мне необходимо чтобы две программы работали одновременно с одним и тем же сокетом! с указанным мною одинаковым boundport! Одна программа работает нормально, но вторая тут же выводит сообщение о том, что данный ип и порт уже используются и поэтому не может подключиться! Как мне сделать чтобы обе программы работали совместно с одним и тем же boundport! На ответы "такое не возможно" я не смотрю! Привожу пример программы WPE PRO которая может спокойно работать так при установке галочки на Open Socket (т.е. работа уже с открытым сокетом)... Жду ваших ответов!
Fizerator вне форума Ответить с цитированием
Старый 11.01.2012, 17:40   #2
fucil
Форумчанин
 
Регистрация: 24.02.2010
Сообщений: 148
По умолчанию

Мне кажиться нахватает потоков !
fucil вне форума Ответить с цитированием
Старый 11.01.2012, 17:50   #3
Fizerator
Пользователь
 
Регистрация: 15.01.2011
Сообщений: 27
По умолчанию

Дело не в потоках! Я же не использую в одной программе два подключения... я использую совершенно две разные программы которые просто работают под одним boundport, port и host! Сейчас прочитал некоторую литературу про сокеты! Вопрос немножко меняется! Есть ли dll которую можно инжектировать в программу из под которой уже управлять отдельно отсылаемыми данными другой программы! Т.е. запустил 1 прогу... вторую запускаю и она же инжектирует в 1 программу dll из под которой я буду дополнительно отправлять нужные мне данные и принимать! Такое как я понял и используется в Wpe Pro
Fizerator вне форума Ответить с цитированием
Старый 11.01.2012, 18:54   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

бред какой то.
у меня с этим форумом(hostrogrammersforum.ru, порт:80) сейчас было около 5-ти соединений.

это серверы не могут делить один и тот же порт, но не клиенты.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2012, 19:52   #5
Fizerator
Пользователь
 
Регистрация: 15.01.2011
Сообщений: 27
По умолчанию

Я не имею в виду обычные соединения типа post и get ! я соединяюсь с сервером по 443 порту... и использую неразрывное сокет соединение прямо как в ICQ !
Fizerator вне форума Ответить с цитированием
Старый 11.01.2012, 19:56   #6
Fizerator
Пользователь
 
Регистрация: 15.01.2011
Сообщений: 27
По умолчанию

И ты не учел 1 вероятность что мне необходимо чтобы от моего компа открывался 1 и тот же порт для двух программ... но это невозможно без инжектирования одной программы в другую... я вроде бы не зря указал что использую один и тот же boundport, вот попробуй создать 2 проги) в одной создать подключение к серверу без разрыва а второй по этому же boundport подключиться к этому же серверу... сразу сообщу что у тебя ошибка вылезет о том, что этот порт и сервер используется в системе"
Fizerator вне форума Ответить с цитированием
Старый 11.01.2012, 20:01   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я не имею в виду обычные соединения типа post и get ! я соединяюсь с сервером по 443 порту... и использую неразрывное сокет соединение прямо как в ICQ !
вообще то HTTP тут не причем, это прикладной уровень, а я про транспортный, там TCP/IP.(при одновременном запросе пяти страниц идет одновременно 5 соединений TCP/IP)
еще пример игра Perfect World, отлично работает в два окна(два постоянных соединения сразу, надеюсь тут нет сомнений в постоянности)
клиент не блокирует порт, два клиента могут применять один и тот же порт.
но не сервер
Цитата:
И ты не учел 1 вероятность что мне необходимо чтобы от моего компа открывался 1 и тот же порт для двух программ... но это невозможно без инжектирования одной программы в другую... я вроде бы не зря указал что использую один и тот же boundport, вот попробуй создать 2 проги) в одной создать подключение к серверу без разрыва а второй по этому же boundport подключиться к этому же серверу... сразу сообщу что у тебя ошибка вылезет о том, что этот порт и сервер используется в системе
учел. читайте выше.

PS: насчет пяти соединений HTTP, у меня интернет медленный, страницы не мгновенно открываются.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 11.01.2012 в 20:10.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2012, 20:16   #8
Fizerator
Пользователь
 
Регистрация: 15.01.2011
Сообщений: 27
По умолчанию

Да проверил на других сайтах! видимо в сервере дело! тогда вопрос также актуален, но уже изменен! С инжектированием дллки я разобрался) но, как в длл записать код который будет отсылать запросы серверу той программы в которую он будет инжектирован, к тому же мне необходимо изменять эти запросы т.е. данные для отправки включающие текст отправки, порт, boundport, и ип сервера! я все не могу разобраться каким образом путем внедрения длл управлять ей из другой программы.. или же все таки придется переписывать длл каждый раз когда хочу чтото изменить в моем запросе и инжектировать ее по новой... жду ответов!
Fizerator вне форума Ответить с цитированием
Старый 11.01.2012, 20:22   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я бы просто создал одно приложение-сервер(не обязательно сокетный, можно и Pipe или нечто иное) к которому будут подключаться приложения и использовать подключение через него.(или же можно в одном приложении такое объединить)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2012, 20:25   #10
Fizerator
Пользователь
 
Регистрация: 15.01.2011
Сообщений: 27
По умолчанию

я бы с радостью использовал твой совет но проблема в том, что сервер не мой!
Fizerator вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по WinSock: "сокет=сокет." Ksardas13 C/C++ Сетевое программирование 2 27.11.2011 16:12
Найти открытый документ по части имени vefer Microsoft Office Word 2 09.02.2011 03:18
Куда ворд сохраняет по умолчанию файл открытый из архива Nick K Софт 7 21.07.2010 08:55