Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.045 c
2-1142519958
vl
2006-03-16 17:39
2006.04.02
sql запрос


1-1140940887
Paha
2006-02-26 11:01
2006.04.02
TICQClient и сообщения с мобильника


2-1142945059
FenalGon
2006-03-21 15:44
2006.04.02
Открытие страниц в Opera


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


6-1134394900
user51
2005-12-12 16:41
2006.04.02
как обратися к сокету зная SocketHandle