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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 18:33   #1
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию TServer(Client)Socket и локальная сеть

здравствуйте. Есть сервер и клиент,написанные с использованием TServerSocket и TClientSocket. Принцип программы:
1) сервер посылает клиенту сообщение в духе "Hellow",
2) клиент,получив сообщение от сервера, отвечает ему,например "Hi".

Суть в чем:
есть локальная городская сеть,состоящая из нескольких сегментов. Т.е. в каждом сегменте находятся, к примеру,компьютеры одного большого многоэтажного дома или квартала. И IP-адреса имеют вид 172.22.<сегмент>.<компьютер>. Так вот программа вполне успешно работает в пределах одного сегмента. Но между сегментами категорически работать не хочет. В чем может быть проблема?
like_cloud вне форума Ответить с цитированием
Старый 21.12.2010, 08:43   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

А может попробовать использовать компоненты Indy для этих целей.
Компонент idTCPServer имеет св-во bindings которое настраивает серверные сокеты (можно настроить сервер на обслуживание клиентов с любыми IP адресами главное чтобы порт был одинаковым).
ServerSocket такого не может
SERG1980 вне форума Ответить с цитированием
Старый 21.12.2010, 19:14   #3
like_cloud
Пользователь
 
Аватар для like_cloud
 
Регистрация: 09.12.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от SERG1980 Посмотреть сообщение
ServerSocket такого не может
т.е. в итоге ServerSocket в принципе не может сможет работать в разных сегментах?
like_cloud вне форума Ответить с цитированием
Старый 18.01.2011, 16:38   #4
IceMage
Пользователь
 
Регистрация: 12.07.2008
Сообщений: 15
По умолчанию

Цитата:
Сообщение от SERG1980 Посмотреть сообщение
ServerSocket такого не может
Почти та же проблема. Ко мне не может приконнектиться человек, у которого инет через роутер, да еще провайдер имеет один внешний IP (в некоторых случаях просто ОЧЕНЬ тормозно данные передаются).

Так вот, вопрос: КАК это реализовано в TIdTCP компонентах?

Да, раз уж зашла об этом речь, что происходит при передаче файла кусками через SendBuf? Судя по ProgressBar, которая увеличивается при каждой итерации цикла передачи, он улетает куда-то в сеть почти мгновенно, принимает при этом куда медленнее.
Пытался при каждой принятой порции отсылать об этом уведомление, но потом подумал, что это слишком накладно с точки зрения трафика и ресурсов системы...

From Stilet: Впредь попрошу не лезть в чужие темы.

Последний раз редактировалось Stilet; 18.01.2011 в 18:06.
IceMage вне форума Ответить с цитированием
Старый 18.01.2011, 17:38   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Но между сегментами категорически работать не хочет.
Пинг проходит? Если да, то и сокеты должны работать. Если нет, то курите гейтвейты, роутеры и прочие маршруты, пока пинг не заработает.

Цитата:
Сообщение от IceMage Посмотреть сообщение
Пытался при каждой принятой порции отсылать об этом уведомление
Вобще-то TCP для того и разрабатывали, чтобы вы этого не делали )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 18.01.2011, 17:52   #6
IceMage
Пользователь
 
Регистрация: 12.07.2008
Сообщений: 15
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Вобще-то TCP для того и разрабатывали, чтобы вы этого не делали )
Ну вот мне надо понять, как работает, а не юзать готовое
IceMage вне форума Ответить с цитированием
Старый 18.01.2011, 18:21   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Ну вот мне надо понять, как работает,

Как работает TCP?

> а не юзать готовое

Не юзать TCP?

Если TCP не устраивает, попробуйте UDP. Есть ряд задач, в которых UDP предпочтительней. Только создайте новую тему, чтобы тут не оффтопить.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 19.01.2011, 11:46   #8
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

> мне надо понять, как работает

Тогда ты не стого конца зашел.
Заходить надо с конца "Протокол IP. Маршрутизация в глобальной сети".
mss вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Локальная сеть ImmortalAlexSan Работа с сетью в Delphi 3 08.05.2010 16:52
локальная сеть B-o-r-i-s Операционные системы общие вопросы 1 25.10.2009 12:16
Локальная сеть _Имя_ Операционные системы общие вопросы 1 21.07.2009 12:52
Локальная сеть Яр|/||< (^_^) Операционные системы общие вопросы 1 01.07.2009 22:18
Локальная сеть... Naruto. Безопасность, Шифрование 7 08.04.2009 13:14