powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кто как юзает сокеты или сетевые библиотеки?
25 сообщений из 81, страница 1 из 4
Кто как юзает сокеты или сетевые библиотеки?
    #39647586
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет

Исходников с прошлых работ нет - подсмотреть не могу. А сейчас подумываю о масштабировании системы через микросервисы, сторонние системы.

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

Соответственно, хочется спросить у местных, кто как решает те или иные вопросы межкомпьютерного взаимодействия. Описания, куски кода и примеры модулей - приветствуются.
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647590
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOUИсходников с прошлых работ нет - подсмотреть не могу.




SOFT FOR YOUкто как решает те или иные вопросы межкомпьютерного взаимодействия. Описания, куски кода и примеры модулей - приветствуются.

Много лет использую RealThinClient - полёт круче некуда.
Сотни сессий, keep-alive встроенный, RPC, компрессия, шифрование и много всего другого
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647602
gamers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator,

а эта RealThinClient штуковина, подойдёт для реализации сервера для игры ? Мол, запускаем клиенты, открываем порты через хамач у многих пользователей. Шлём данные ей, и она быстро обарабатывает и отсылает всем ответы, расположения предметов - игроков, и так далее ?

Или она больше по другой части
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647611
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorМного лет использую RealThinClient - полёт круче некуда.
Сотни сессий, keep-alive встроенный, RPC, компрессия, шифрование и много всего другого
Хотел посмотреть, а его сайт теперь - роскомнадзорклиент :(
Он платный?
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647619
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Скинь ссыль на бесплатную реализацию
Оно кстати кроссплатформенное?

P.S. слышал ещё про ZMQ. Но там слишком много исходников для меня, особенно на нелюбимом С++ )
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647620
gamers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647632
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpХотел посмотреть, а его сайт теперь - роскомнадзорклиент

AirVPN - рекомендую. Можно поставить прям на роутер.
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647732
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gamers,

Спасибо!
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39647831
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а grpc в экосистеме delphi нема?
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39649702
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда я уперся в некоторые ограничения dcom то чтобы минимизировать переделки решил перетаскивать мидас-приложения на родной же tsocketconnection. для начала пришлось его просто править, потом дополнительно своих мулек наворотил. в результате клиенты/апсервера фактически совершенно не пришлось переделывать, только сменить транспорт и добавить обработчиков для новых фич
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650013
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делал двунаправленное общение сервис <> гуй, на портах. общается с помощью TIdCmdTCPClient/TIdCmdTCPServer, больше 70ти команд в обе стороны обрабатывается, работает без проблем. После прихода унигуя всё это 'богатство' списано за не надобностью. Был бы он раньше, то даже не возился бы.
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650097
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Говорят, Indy зло. Там каждое соединение в отдельном потоке
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650110
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUГоворят, Indy зло. Там каждое соединение в отдельном потоке
это, конечно, зло. используй libuv, позволяет в одном потоке обрабатывать много соединений.
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650149
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

А чем он лучше RTC ?
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650158
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев ЕвгенийSOFT FOR YOUГоворят, Indy зло. Там каждое соединение в отдельном потоке
это, конечно, зло. используй libuv, позволяет в одном потоке обрабатывать много соединений.
Что-то Delphi-порт зело старый...
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650168
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгений,

для своих применений хватает. гигабитную сеть забивает полностью.
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650358
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonдля своих применений хватает. гигабитную сеть забивает полностью.
как я понял проблема не в том что забьет не забьет, а в потоках
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650363
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните мне схему убслуживания соединений

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

И по исходящим пакетам тоже не понятно. За исходящие отвечает тот же поток, или создают другой?

Ну короче проясните ситуацию ). Желательно с кодом.
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650375
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

у меня synopse
устроено так

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
  TTCPDaemon = class(TThread)
  private
    fSock   : TTCPBlockSocket;
    fPort   : string;
  public
    property Port: string read fPort write fPort;
    constructor Create (APort: string);
    destructor Destroy; override;
    procedure Execute; override;
  end; 

  TSQLDaemon = class(TThread)
  private
    fClient  : string;
    fSock    : TTCPBlockSocket;
    fTimeOut : integer;
    fDBConn  : TDBConnection;
  public
    property TimeOut: integer read fTimeOut write fTimeOut;
    procedure Stop;
    procedure SendData(AStatus: Integer; AStream: TMemoryStream);
    procedure SendStream(AStream: TMemoryStream);
    procedure SendString(AValue: PChar);
    constructor Create (HSock: TSocket; Client: string);
    destructor Destroy; override;
    procedure Execute; override;
  end;      

rocedure TTCPDaemon.Execute;
var
  s : string;
  sIP : string;
  ClientSock : TSocket;
begin
  try
    fSock.CreateSocket;
    fSock.SetLinger(True, 1);
    fSock.Bind('0.0.0.0', fPort);
    fSock.Listen;
    if fSock.LastError <> 0 then begin
      s := 'Код ошибки ' + IntToStr(fSock.LastError) + #13#10 + fSock.LastErrorDesc;
      raise Exception.Create(s);
    end; // if fSock.LastError <> 0
    repeat
      if Terminated then Break;
      if fSock.CanRead(1000) then begin
        ClientSock := fSock.Accept;
        if fSock.LastError <> 0 then begin
          s := 'Socket LastError ' + IntToStr(fSock.LastError) + #13#10 + fSock.LastErrorDesc;
          raise Exception.Create(s);
        end; // if fSock.LastError <> 0
        sIP := fSock.GetRemoteSinIP + ':' + IntToStr(fSock.GetRemoteSinPort);
        //ClientAdd(sIP);
        TSQLDaemon.Create(ClientSock, sIP);
      end; // if CanRead(1000)
      Sleep(1);
    until False;
  except
    on E:Exception do begin
      s := E.Message;
      SaveToLog(s);
    end;
  end;
end;                    


...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650382
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

У меня подобный код, немного с другой обвязкой.

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


Есть один поток, который ожидает входящее соединение. Если соединение пришло - создаётся новый поток на это соединение и в пределах его обрабатывается весь коннект.

авторИ по исходящим пакетам тоже не понятно. За исходящие отвечает тот же поток, или создают другой?

TCP соединения двунаправленные, если это имеется в виду.
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650396
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratIsk,

За код спасибо
По существу не понятно, причём здесь сессии, соединения и потоки )

makhaon,

Подход как в Indy. Не подходит для большого количества соединений
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650399
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

какие сессии, соединения ?!
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650408
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratIsk,

Которых у тебя нет :)

В моем понимании есть клиентское приложение, которое устанавливает соединение с твоим сервером, по сему поводу открывается сессия и сопровождается какое-то время
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650413
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

сессия соединения в этой строчке
TSQLDaemon.Create(ClientSock, sIP);

дальше она сама обрабатывает запросы клиента
...
Рейтинг: 0 / 0
Кто как юзает сокеты или сетевые библиотеки?
    #39650417
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
procedure TSQLDaemon.Execute;
var
  s : string;
  i : integer;
begin
  repeat
    try
      if fSock.CanRead(fTimeOut) then begin
        s := fSock.RecvString(fTimeOut);
        if (fSock.LastError = 10054) or
           (fSock.LastError = 10060) then Break;
        if s <> '' then begin
            fDBConn.DataIn.Clear;
            fDBConn.DataOut.Clear;
            fSock.RecvStream(fDBConn.DataIn, fTimeOut);
            fDBConn.DoCommand;
            s := '';
        end; // if s <> ''
      end;
      Sleep(1);
    except
      on E:Exception do begin
        s := E.Message;
        SaveToLog(s);
      end;
    end;
  until Terminated;
  try
    if fDBConn.Connected then fDBConn.Disconnect;
    //ClientDelete(fClient);
  except
    on E:Exception do begin
     s := E.Message;
     SaveToLog(s);
    end;
  end;
end;                          
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 1 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Кто как юзает сокеты или сетевые библиотеки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]