Форум: "Сети";
Текущий архив: 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