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

Вниз

вопрос про порты   Найти похожие ветки 

 
Kurtevich   (2004-07-29 10:54) [0]

говорят, когда сервер слушает запросы на коннект по порту ХХХ, то после коннекта он работает с клиентом уже через другой порт... это так? и нужно ли такое делать самостоятельно, чтобы не заколбасить порт большим количеством подключений? подскажите плизз, если кто на самом деле знает... :)


 
Digitman ©   (2004-07-29 11:22) [1]


> это так?


нет, это не так
в контексте соединения с вновь подключившимся клиентом сервер использует тот же номер порта, что и слушающий порт


 
Rouse_ ©   (2004-07-29 11:45) [2]

Просто создается еще один экземпляр сокета функцией accept который и общается с клиентом а первоначальный сокет продолжает слушать порт на наличие новых подключений...


 
Kurtevich   (2004-07-29 13:04) [3]

вот-вот... вот это оно... дык я ж к тому: порт соккета, возвращенного акцептом тот же самый, что и у слушающего? и нужно ли / можно ли его поменять? сколько нада клиентов, шоб забить этот несщасный порт под самую тюбетейку? если у меня их будет 2^10 или больше? %-(


 
Verg ©   (2004-07-29 13:18) [4]

У соединенных сокетов всегда два адреса локальныйIP:локальныйПОРТ + дальнийIP:дальнийПОРТ

Соответственно, accept воозвращает сокет у которого -
локальныйIP:порт прослушки+IPклиента:портКлиента

Ничего тут не поменять, да и незачем.

Порт - это не овощная яма, шоб его забивать.
Забить по самую тубетэйк могут твой нсщасный процесс(программу-сервер), а не порт. Сколько для этого понадобится клиентов зависит от многих факторов. Прежде всего от того как твоя программа-сервер будет обслуживать каждого из этих клиентов, ну в конце-концов можно и тюбетейку снять :))


 
Digitman ©   (2004-07-29 13:52) [5]


> Kurtevich   (29.07.04 13:04) [3]


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


 
Rouse_ ©   (2004-07-29 15:45) [6]

> если у меня их будет 2^10 или больше?
Не будет у тебя столько, просто не хватит ситемных ресурсов. Немного абстрагируясь можно сказать что TSocket являится аналогом THandle которого всегда конечное количество...
Но это так к слову :)


 
Kurtevich   (2004-07-29 18:45) [7]

не знаю что такое THandle, но подозреваю что так же как и SOCKET это на самом деле указатель размера unsigned int...

а сколько же максимум их может быть и чем это ограничено?


> система сама разберется и даст тебе знать, когда будет "по
> самый тубэтейк"


спасибо, но если бы я хотел дождаться этого момента, я бы не задавал такие вопросы, а делал бы всё методом "авось прокатит"... :)


 
Kurtevich   (2004-07-29 18:49) [8]

кажется даже когда-то я видел где-то в каких-то виндовзких хэдэрах что-то типа

#define HANDLE *void

но это так, к слову... :)


 
Kurtevich   (2004-07-29 18:51) [9]

то есть я конечно-же хотел сказать

typedef HANDLE *void

:) бывает...


 
Kurtevich   (2004-07-29 18:53) [10]

... или typedef void* HANDLE ???
да, старость не радость... :)


 
panov ©   (2004-07-30 09:43) [11]

type
THandle = LongWord;


 
Digitman ©   (2004-07-30 10:18) [12]


> спасибо, но если бы я хотел дождаться этого момента, я бы
> не задавал такие вопросы, а делал бы всё методом "авось
> прокатит"...


можешь сам поэкспериментировать в "ловле момента" и грубо оценить примерные размеры "тубетэйк"

для этого нужно :

- взять компонент ClientSocket,
- установить у него св-ва Host = "localhost" и Port = номер_заведомо_неактивного_порта_на_лок_машине,
- установить обработчик OnError след.образом :

var
 TyubeteikCapacity: Integer = 1;
...
 Inc(TyubiteikCapacity);
 ErrorCode = 0;
 try
   ClientSocket.Open;
 except
   ShowMessage("По самый тубетейк = " + IntToStr(TyubiteikCapacity));
 end

- выполнить метод ClientSocket.Open


 
Kurtevich   (2004-07-30 12:23) [13]


> ShowMessage("По самый тубетейк = " + IntToStr(TyubiteikCapacity));


:D  ....круто! :)))

никогда не юзал дельфийские соккетные компоненты и не собираюсь


 
Digitman ©   (2004-07-30 12:30) [14]


> Kurtevich   (30.07.04 12:23) [13]


ну и глупо
к тому же можно было сообразить тем что находится под тубетейк, что пример дан НЕ для реального "юзанья", а для детального исследования, ЧТО и КАК происходит при достижения ситуации "по самый тубетейк"


 
Kurtevich   (2004-07-30 13:46) [15]


> Digitman ©   (30.07.04 12:30) [14]


я написал, что никогда не юзал TSocket совсем не для того, чтобы оскорбить тебя, Digiman. А пример на самом деле убил меня этим самым
> var
>  TyubeteikCapacity: Integer = 1;

потому что это на самом деле круто :) вот и всё.



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

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

Наверх





Память: 0.48 MB
Время: 0.034 c
14-1094669161
olookin
2004-09-08 22:46
2004.10.10
We are living in Amerika - Rammstein


3-1094790123
NewDelpher
2004-09-10 08:22
2004.10.10
Эффективность запросов


1-1095846555
Profi
2004-09-22 13:49
2004.10.10
Как избежать зависания?


4-1094812390
DjTheme
2004-09-10 14:33
2004.10.10
Работа со СКАНЕРОМ


3-1095166277
Koala
2004-09-14 16:51
2004.10.10
Вопрос по SQL запросу





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский