Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Можно ли прослушать порт, если на нем уже висит другая программа   Найти похожие ветки 

 
DelphiN! ©   (2006-03-03 12:26) [0]

Очень нужно прослушать и получить данные с порта, на котором уже висит другая программа. При этом моя программа естесно не должна мешать первой. Как такое возможно?


 
Курдль ©   (2006-03-03 12:32) [1]

Очень простоц вопрос: "протокол какой?"


 
DelphiN! ©   (2006-03-03 12:33) [2]

TCP/IP


 
Курдль ©   (2006-03-03 12:36) [3]

Нельзя. Хотя тогда надо понять утверждение "висит другая программа". Что это значит?
1. программа для своих целей использует указанный порт.
2. программа установила коннект по этому порту с другой программой.


 
DelphiN! ©   (2006-03-03 12:38) [4]

Первая программа, это прокси сервер, которые получает запросы по данному порту от клиентов, и сответственно по нему же шлет им ответ, моя программа должна лишь получать запросы от клиентов и обрабатывать их(для ведения отчетности)


 
Курдль ©   (2006-03-03 12:43) [5]


> и сответственно по нему же шлет им ответ


Вовсе не соответственно! Обычно в таких случаях всем подключающимся известен TCP-прослушиватель прокси. По запросу, пришедшему на него от клиента, сервер открывает новый порт и предоставляет его для связи клиенту, а прослушиватель так и остается в режиме прослушивания и готовности к новому коннекту.


 
DelphiN! ©   (2006-03-03 12:52) [6]


>  [5] Курдль ©   (03.03.06 12:43)


Не совсем понял как клиенту может быть известен прослущиватель?
И как реализовать чтобы сервер открывал новый порт, чтобы отсылать по нему информацию, да и принимать сервер должен данные по тому же порту, что и прослушиватель.


 
Курдль ©   (2006-03-03 13:06) [7]


> Не совсем понял как клиенту может быть известен прослущиватель?


Читайте первоисточники. Если Вам говорят, что MS SQL Server связывается с клиентом по порту 3625 (не точно), то это и есть порт прослушивателя.


 
DelphiN! ©   (2006-03-03 13:15) [8]

Всмысле данные сначало поступают на порт прослушки, а потом программа прослушки пересылает их на другой порт конечному адресату?


 
Курдль ©   (2006-03-03 13:17) [9]


> Всмысле данные сначало поступают на порт прослушки


Не данные, а запрос на коннект. Данные ждут, пока коннект не установится :)


 
DelphiN! ©   (2006-03-03 13:26) [10]

А как перенаправить запрос на коннект на другой порт, скажем в том же самом TServerSocket-e?

А прокся ответ куда скинет? В прокси сервере скажем Юзергейт указыватся 1 порт для работы с клиентами, а 2 указать нельзя(исходящий\входящий). Получается и ответ перенаправлять нужно?


 
Курдль ©   (2006-03-03 13:28) [11]

Думаю, что едва ли нам в разумное время удастся закончить подобный диалог. Без изучения литературы по розеткам никак не обойтись :(


 
DelphiN! ©   (2006-03-03 13:35) [12]

Не посоветуете что почитать, желательно чтобы с реальными примерами, да и поконкретней было, просто очень скоро нужно сделать ...


 
Курдль ©   (2006-03-03 13:42) [13]

Так навскидочку литературу не назову. Я использовал чистый MSDN. Но ясности это добавило уйму. Еще следует поискать литературу по WinSock2.
Кстати, первым моим шагом был топик на Delphimaster, типа "как по-быстренькому организовать работу с сокетами". В результате пришлось таки изучать первоисточники. Дело хоть и не простое, но крайне интересное.


 
DelphiN! ©   (2006-03-03 13:47) [14]

Спасибо, буду копать ...


 
Piter ©   (2006-03-03 13:50) [15]

Плохой вариант.

Какой прокси используется? Практически все прокси могут делать логи. Вот логи и надо обрабатывать, а не искать извращенные способы.


 
Ученик чародея ©   (2006-03-03 13:52) [16]

сниффер?


 
DelphiN! ©   (2006-03-03 14:12) [17]


>  [15] Piter ©   (03.03.06 13:50)


Просто нужно данные обрабатывать при каждом получении нового запроса(для быстрого реагирования, при содержании в логах определеной информации). А перерывать лог при каждом запросе на соединение не реально.


>  [16] Ученик чародея ©   (03.03.06 13:52)


Уже думал об этом, только раньше с этим не сталкивался. Слышал о библиотеке WinPCap, но только слышал, не более ..


 
DelphiN! ©   (2006-03-03 14:24) [18]


> [15] Piter ©   (03.03.06 13:50)


Да и в логи прокси серверов вводятся только запрашиваемые адреса, а содержимое HTML объектов не записывается ...


 
KSergey ©   (2006-03-03 14:57) [19]

Книжка:

Э.Джонс, Д.Оланд
Программирование в сетях Microsoft Windows.
Издательство "Питер"

Все от и до (практически)


 
umbra ©   (2006-03-03 15:23) [20]

DelphiN! ©
к тому же на любом прокси возможно распределять доступ к внешней сети в зависимости от имени пользователя, его IP-адреса, МАС-адреса, УРЛ, к которому идет запрос и т.д. Вы пытаетесь сдублировать работу прокси сервера.


 
Lamer@fools.ua ©   (2006-03-03 16:01) [21]

>>DelphiN! ©   (03.03.06 12:33) [2]

>TCP/IP
Это не протокол, а стек протоколов. Причём разного уровня: IP — сетевого, а TCP — транспортного.


 
tesseract ©   (2006-03-04 13:16) [22]

IP - служит только для однозначного определения адреса, TCP/UDP уже для передачи данных.


 
Verg ©   (2006-03-04 13:21) [23]

см. SOCK_RAW и SIO_RCVALL ( Winsock2 и т.д. ), winpcap http://www.winpcap.org/


 
Piter ©   (2006-03-04 18:09) [24]

tesseract ©   (04.03.06 13:16) [22]
IP - служит только для однозначного определения адреса, TCP/UDP уже для передачи данных


гы, надо же такой бред с таким умным видом говорить :)))


 
tesseract ©   (2006-03-04 19:43) [25]


> гы, надо же такой бред с таким умным видом говорить :)))

Дарова. Есть другое мнение ?


 
Piter ©   (2006-03-04 20:28) [26]

tesseract ©   (04.03.06 19:43) [25]
Дарова. Есть другое мнение ?


Привет. Да, есть :)))

Как ты вообще такую глупость можешь говорить, если для передачи своих пакетов TCP все равно использует IP протокол?

Или ты очень криво выражаешься.


 
DelphiN! ©   (2006-03-06 07:22) [27]

А что скажите о книге
Йон Снейдер
Эффективное программирование TCP/IP
?


 
tesseract ©   (2006-03-06 11:08) [28]


> Как ты вообще такую глупость можешь говорить, если для передачи
> своих пакетов TCP все равно использует IP протокол?


IP используется для адресации. Конечно можно написать свой транспортный протокол вроде TCP или UDP. А можно и по ARP данные передавать, но нужно ли это?


 
umbra ©   (2006-03-06 11:28) [29]

2 Piter ©   (04.03.06 20:28) [26]

наоборот, для передачи данных IP протокол использует TCP


 
tesseract ©   (2006-03-06 14:21) [30]


> наоборот, для передачи данных IP протокол использует TCP

Неа питер правее. TCP/UPD пакеты дополняются IP-заголовком. Но для конктретной передачи данных, уже используются TCP/UDP.


 
Piter ©   (2006-03-06 14:30) [31]

tesseract ©   (06.03.06 11:08) [28]
IP используется для адресации


Используется, и что? Понятное дело, что в протоколе должно быть обозначено такое понятие как адрес отправителя и получателя, иначе как тогда пакеты будут ходить.

Но непосредственно передаются в ИНТЕРНЕТЕ именно IP-пакеты. Маршрутизаторы работают с IP-пакетами, а что там внутри завернуто - TCP, UDP или еще что - в большинстве случаев им все равно.

umbra ©   (06.03.06 11:28) [29]
наоборот, для передачи данных IP протокол использует TCP


 
Piter ©   (2006-03-06 14:32) [32]

umbra ©   (06.03.06 11:28) [29]
наоборот, для передачи данных IP протокол использует TCP


это вообще шедевр :)))

umbra, а вот мне интересно - с какой целью пишутся такие сообщения? Я очень сомневаюсь, что ты где-то прочитал то, что сказа. Значит, сам придумал.

А если придумал сам - почему с такой уверенностью преподносишь? Типа если прав - то прав, а если неправ - то собеседник в возмущении "Да как ты такое можешь говорить, ты не прав..." - и все тебе подробно расскажет, как оно на САМОМ деле?


 
tesseract ©   (2006-03-06 14:41) [33]


> Но непосредственно передаются в ИНТЕРНЕТЕ именно IP-пакеты.
>  

А в Интранете, что не IP ? :-)


 
Piter ©   (2006-03-06 15:39) [34]

tesseract ©   (06.03.06 14:41) [33]
А в Интранете, что не IP ? :-)


в интранете тоже могут быть применены интернет-технологии. И что?


 
tesseract ©   (2006-03-06 16:40) [35]


> в интранете тоже могут быть применены интернет-технологии.
>  И что?


Могут ;-))))))))  Интранет это когда ты между собой локалки через интренет объединяешь.

ЗЫ: Всё таки лучше приложиться глазами к "TCP/IP практическое руководство".


 
Piter ©   (2006-03-06 17:55) [36]

tesseract ©   (06.03.06 16:40) [35]
Интранет это когда ты между собой локалки через интренет объединяешь


я не понимаю, ты теперь решил применить клевую тактику. Подловить меня где-нибудь, и таким образом доказать, что ты не сказал чушь?

Логика хорошая.

Проблема в том, что доказывать мне тебе ничего не надо. Ты сказал, я поправил.

Если ты хочешь думать, что вся цедь IP протокола - это ввести понятие IP-адреса - то ты волен так думать, сколько угодно.

Также как и umbra волен думать, что IP при передаче использует TCP.


 
umbra ©   (2006-03-06 19:27) [37]

2 Piter ©   (06.03.06 17:55) [36]


> что IP при передаче использует TCP.

интересно, а что же он использует? IP нужен для определения концов соединения. Это с таким же успехом могут быть MAC адреса. Но для передачи данных используется TCP. И в стеке протоколов IP указан как более абстрактный, чем TCP.

P.S. Я всегда стараюсь высказать свое мнение, существующее на момент разговора.


 
umbra ©   (2006-03-06 19:32) [38]

2 Piter ©

прошу прощения, я был не совсем прав


 
Piter ©   (2006-03-06 20:46) [39]

umbra ©   (06.03.06 19:32) [38]
прошу прощения, я был не совсем прав


гы... Как тонко :)

Я бы сказал, что ты был "совсем не прав" :)


 
tesseract ©   (2006-03-06 22:29) [40]


>  И в стеке протоколов IP указан как более абстрактный, чем
> TCP.


Не только TCP является транспортным протоколом, но и UPD. Ftp например использует UDP. Я про это с начала так и говорил.


> я не понимаю, ты теперь решил применить клевую тактику.
> Подловить меня где-нибудь, и таким образом доказать, что
> ты не сказал чушь?


Я чуши не говорил. И ловить ни кого ни на чём не собирался. По стандарту IP нужен именно для того, чтобы уходили к кому надо. Ты когда письмо бабушке в школе писал на конверет адрес почтовый указывал? Только не говори, что ты там в адресе приветы бабушке писал, тебя маршрутизатор в виде почтальонши не пропустил бы. Так вот конверт-IP, а само письмо в конверте - TCP/UDP :-)


 
Piter ©   (2006-03-06 22:52) [41]

tesseract ©   (06.03.06 22:29) [40]
Ftp например использует UDP


нафига? DNS вот использует UDP, а в FTP он зачем нужен?

Есть простая реализация FTP на UDP - TFTP называется вроде. Но это другое.

tesseract ©   (06.03.06 22:29) [40]
По стандарту IP нужен именно для того, чтобы уходили к кому надо


По стандарту, IP - это протокол для передачи данных. Вот и все.

И определеия IP-адресов там неотъемлимая, но и не единственная часть.

tesseract ©   (06.03.06 22:29) [40]
Так вот конверт-IP, а само письмо в конверте - TCP/UDP :-)


очень удачный пример.

Так вот ты говоришь, что смысл конверта - это чтобы было где адрес написать.

А я говорю, что конверт - это куда более сложная конструкция и введен он не только для того, чтобы было куда адрес писать.

Но и чтобы было куда марки клеить.

И чтобы он был стандартной формы, удобной для передачи существующими транспортными средствами.

И так далее.


 
tesseract ©   (2006-03-06 23:09) [42]

Именно просто говорим по разному,  IP - указывает куда доставить данные.

TCP/UDP уже диктуют как данные передавать.

IP СОЕДИНЕНИЯ НЕ УСТАНАВЛИВАЕТ.

TCP устанавливает и поддерживает соединение силами протокола. UDP - силами вышестоящих протоколов.

FTP использует UDP для того, чтобы уменьшить накладные расходы на передачу файлов(там можно не указывать CRC нет поддержки соеденения и тп. ).


 
Piter ©   (2006-03-06 23:22) [43]

tesseract ©   (06.03.06 23:09) [42]
TCP/UDP уже диктуют как данные передавать


как тебя понять... не знаю...

Вот ты знаешь такую программку, как PING? Она реализует систему эхо-запрос - ответ.

Так вот при этом два компьютера обмениваются данными. А это не TCP, не UDP.

Ты знаешь, например, что такое VPN? Так вот до недавнего времени я ВЫХОДИЛ в интернет через VPN-соединение. А это опять же - не TCP и не UDP.

Ты какую то фигню городишь.

Если большинство известных тебе программ работают по TCP и UDP - это еще ничего не значит.

tesseract ©   (06.03.06 23:09) [42]
IP СОЕДИНЕНИЯ НЕ УСТАНАВЛИВАЕТ


что значит не устанавливает? В каких понятиях? В понятиях TCP? Не устанавливает.

Ты полностью прав - IP протокол не устанавливает при своей работе TCP соединения.
Конгениально.

tesseract ©   (06.03.06 23:09) [42]
FTP использует UDP для того, чтобы уменьшить накладные расходы на передачу файлов


FTP абсолютно точно использует TCP для передачи файлов. Возможно, есть режим передачи по UDP (?!?!?!?!?!) - но я о таком впервые слышу.


 
tesseract ©   (2006-03-07 10:15) [44]


> Ты полностью прав - IP протокол не устанавливает при своей
> работе TCP соединения.Конгениально.

Он вообще ничего не устанавливает.Просто если пакет типа дошёл до точки он принимается, или не принимается, как ты верно заметил IP предназначен для маршрутизации и непосредственно данные из него никого не колышат, пока их из пакета не извлекут вышестоящие протоколы.
ICMP/IGMP - Вообще то относятся к сетевому уровню и не служат для передачи данных.
"TCP/IP практическое руквоводство" Глава 6.

Насчёт FTP - он реально может орагнизовывать и TCP и UDP соединения.


 
Fay ©   (2006-03-07 10:37) [45]

Столько заблуждений в одной ветке! Я в шоке.


 
VirEx ©   (2006-03-07 16:14) [46]

Протокол IP является самым главным во всей иерархии протоколов семейства TCP/IP. Именно он используется для управления рассылкой TCP/IP пакетов по сети Internet. Среди различных функций, возложенных на IP обычно выделяют следующие:
· определение пакета, который является базовым понятием и единицей передачи данных в сети Internet. Многие зарубежные авторы называют такой IP-пакет датаграммой;
· определение адресной схемы, которая используется в сети Internet;
· передача данных между канальным уровнем (уровнем доступа к сети) и транспортным уровнем (другими словами мультиплексирование транспортных датаграмм во фреймы канального уровня);
· маршрутизация пакетов по сети, т.е. передача пакетов от одного шлюза к другому с целью передачи пакета машине-получателю;
· "нарезка" и сборка из фрагментов пакетов транспортного уровня.
Главными особенностями протокола IP является отсутствие ориентации на физическое или виртуальное соединение. Это значит, что прежде чем послать пакет в сеть, модуль операционной системы, реализующий IP, не проверяет возможность установки соединения, т.е. никакой управляющей информации кроме той, что содержится в самом IP-пакете, по сети не передается. Кроме этого, IP не заботится о проверке целостности информации в поле данных пакета, что заставляет отнести его к протоколам ненадежной доставки. Целостность данных проверяется протоколами транспортного уровня (TCP) или протоколами приложений.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.58 MB
Время: 0.102 c
15-1142113126
Ы
2006-03-12 00:38
2006.04.02
Степень доверия


2-1142414436
PoetOfDelphi
2006-03-15 12:20
2006.04.02
Проверка поля типа TNotifyEvent


2-1142019006
serko
2006-03-10 22:30
2006.04.02
ListView


2-1142514717
tolikua
2006-03-16 16:11
2006.04.02
перемещение объектов типа TPanel по форме


2-1142724038
ga3
2006-03-19 02:20
2006.04.02
проблема с ActiveX dll





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский