Конференция "KOL" » Сокеты в KOL
 
  • Ruzzz © (03.12.09 03:41) [0]
    Начал разбираться с сокетами в KOL, немного для себя сделал заметки. Может еще кому пригодятся. Может советы дадите чем лучше пользоваться?

    Заметка:

    --

    Архивы 7z лежат тут http://kolnmck.kolmck.net/components/files_net.shtml
    Zip - http://kolmck.net/rindex.htm

    - Здесь http://kolnmck.kolmck.net/ нужно править MIME иначе некоторые архивы 7z отдаются как страница

    ***

    KOLSocket

    KOLSocket.pas

    Объект для работы с сокетами, с визуальным зеркалом. В качестве демо-приложения - пример работы с Telnet.
    Автор : Александр Шахайло

    Скачать можно:
    1) http://kolnmck.kolmck.net/files/components/net/kolsocket.7z
    2) http://kolmck.net/Components/network/kolsocket.zip
    3) Или SVN

    Все три файла KOLSocket.pas разные, хоть и не много.

    Реализация не блокирующих сокетов на основе WinSock.

    ---

    TKOLServerSocket & TKOLClientSocket

    Адаптация для KOL (с зеркалами для MCK) компонентов TServerSocket и TClientSocket из VCL.
    Автор : Алексей Сапронов

    http://kolnmck.kolmck.net/files/components/net/serverclient.zip - не работает
    http://kolnmck.kolmck.net/files/components/net/serverclient.7z
    В SVN вроде нет

    ЕЩЕ НЕ СМОТРЕЛ

    ---

    TCPSocket

    kolTCPSocket.pas
    mckTCPSocket.pas

    Компоненты TCPServer & TCPClient для KOL (с зеркалами для MCK).
    Автор : Роман Воробец

    http://kolnmck.kolmck.net/files/components/net/tcpsocket.7z
    http://kolmck.net/Components/network/TCPSocket.zip
    Есть в SVN

    Везде разные kolTCPSocket.pas, похоже что наиболее новый в SVN, 7z - наиболее старый

    Реализация не блокирующих сокетов на основе WinSock.

    ---

    XSocket

    kolXSocket.pas

    http://kolmck.net/Components/network/XSocket.zip
    http://kolnmck.kolmck.net/files/components/net/xsocket.7z
    В SVN не нашел

    Реализация через потоки не блокирующих сокетов, WinSock.

    ---

    XXSocket

    KOLXXSocket.pas

    XX-Socket для KOL. Основан на XSocket.
    Автор: Владимир Кладов

    http://kolmck.net/Components/network/XXSocket.zip
    Есть в SVN

    ---

    ClientServer

    Модуль для работы с сокетами, плюс демо Client-Server.
    Автор : Mike Sevbo

    http://kolnmck.kolmck.net/files/components/net/clientserver.7z
    http://kolnmck.kolmck.net/files/components/net/clientserver.zip - не работает

    Как я понимаю это совсем не библиотека, код использует KOLSocket.pas

    ---

    KOLICS

    Библиотека для создания сетевых приложений. Альтернатива не работающему Indy. Компоненты SMTP, HTTP, Ping - это уже проверены и работают.
    Автор: Дмитрий Жаров a.k.a. Gandalf

    http://kolnmck.kolmck.net/files/components/net/kolics.7z
    http://kolnmck.kolmck.net/files/components/net/kolics.zip - не работает

    Адаптированная для KOL библиотека Internet Component Suite (www.overbyte.be)

    ---

    synapse

    Библиотека сетевых функций Synapse (http://www.ararat.cz/synapse/) адаптированная для KOL.

    Ссылок нет :)
    У меня есть старый архив если что.

    ---

    KOLUPD

    Компонент KOL для работы с UPD.
    Автор : Unknown

    http://kolnmck.kolmck.net/files/components/net/koludp.7z
    http://kolnmck.kolmck.net/files/components/net/koludp.zip - не работает

    ---

    KOLFtp

    KOLFtp.pas

    FTP-клиент, с небольшим демо-приложением.
    Автор : Александр Шахайло

    http://kolnmck.kolmck.net/files/components/net/kolftp.7z
    http://kolmck.net/Components/network/KOLFtp.zip
    В SVN нет

    Файлы KOLFtp.pas в архивах немного разные

    Использует KOLSocket

    ---

    KOLHttp

    KOLHttp.pas

    Компонент для загрузки файлов по http.
    Автор: Александр Шахайло

    http://kolnmck.kolmck.net/files/components/net/kolhttp.7z
    http://kolmck.net/Components/network/KOLHttp.zip
    есть в SVN

    Использует KOLSocket

    ---

    KOLHTTPDownload

    Компонент для загрузки данных через протокол HTTP.
    Автор : Danger

    http://kolnmck.kolmck.net/files/components/net/kolhttpdownload.7z
    есть в SVN

    Использует только WinInet
  • MTsv DN (03.12.09 12:05) [1]
    > - Здесь http://kolnmck.kolmck.net/ нужно править MIME иначе некоторые архивы 7z отдаются как страница
    Все нормально работает. Как архив.
  • Ruzzz © (04.12.09 22:20) [2]
    MTsv DN, а зачем две страницы с загрузками? Тем более что там есть разные версии файлов?

    У кого-нибудь есть еще библиотеки для работы с сокетами? Может кто поделиться?
  • MTsv DN (04.12.09 22:26) [3]
    Вы про:
    http://kolmck.net/
    и
    http://kolnmck.kolmck.net/
    ???
    Первый сайт Кладов ведет, второй mdw и я (когда время есть)... В принципе, это 2 разных сайта...
  • Ruzzz © (04.12.09 22:33) [4]
    MTsv DN , Я извиняюсь за оффтоп, с вами можно как-то связаться? Я писал вам и mdw, но ответа так и не получил.
  • MTsv DN (04.12.09 22:35) [5]
    Проверьте почту...только что отправил...
  • mdw (05.12.09 22:54) [6]

    > mdw, но ответа так и не получил.

    Я в отпуске, почта на работе сама получается:) домой не доходит, забыл оперу закрыть...
  • heilong (07.12.09 13:43) [7]
    to Ruzzz:

    У меня есть своя библиотека по работе с синхронными сокетами TCP и UDP, без всяких оберток высокого уровня на основе synapsa, но мне кажется вышеперечисленных для понимания сокетов в KOL вполне хватает.
  • Ruzzz © (02.02.10 09:09) [8]
    heilong, если можно, скинте на почту или поделитесь ссылкой здесь.
  • heilong (02.02.10 17:18) [9]
    Хорошо, только примерчик попонятней найду
  • Barloggg (04.02.10 18:46) [10]
    угу, я попользовался этими библиотеками - мне нужно было скачивать странички - вделывал погоду в свою программку.

    обнаружил что не все библиотеки работают с авторизацией на прокси сервере.
    обнаружил что те, что работают с прокси - не работают на прямом доступе к инету (то есть вообще без каких-либо настроек).
    обнаружил что не все библиотеки способны скачивать с сайте (всмысле им вместо http://www/dephimaster.ru нужно давать полную ссылку именно на html-файл.)

    так как я совсем нифига не понимаю в программированиии сделал тупо - объявил публичное тестирование всех примеров и теперь юзер должен выбрать какой библиотекой пользоваться. их всего 4 штуки заработало из всего, что я нашел в закромах KOL-ориентированных сайтов - засунул их в отдельную dll и расслабился.

    если кто хочет эту готовую dll - могу выложить - скачивает что скажешь с инета и записывает в файл.
  • heilong (05.02.10 13:43) [11]
    По поводу проксика: в случае если не нужна авторизация, вообще можно через любые библиотеки по работе с сокетами юзать, там ничего сложного. А вот если авторизация, да еще и через домен (NTLM), вот тогда уже прийдеться попотеть.
  • dest (16.08.10 02:48) [12]
    http://kolnmck.kolmck.net/files/components/net/koludp.7z тоже не работает.
    где-нибудь ещё можно скачать?
    а может есть какие-то другие kol-компонеты для работы с UDP?
  • Dy1 (30.12.10 21:33) [13]
    как работать с KOLSocket ? Не срабатывают события ни на чтение, ни на запись ;(
  • Dy1 (01.01.11 19:03) [14]
    uses ... KOLSocket;
    ...
    procedure TForm1.Socket1Read(SocketMessage: TWMSocket);
    var
     s: ansistring;
    begin
     while Socket1.Count > 0 do
     begin
       s := Socket1.ReadLine(#13);
       Memo1.Add(s + #13#10);
     end;
    end;

    procedure TForm1.BUTconnectClick(Sender: PObj);
    begin
     if Socket1.Connected Then
       Socket1.DoClose;
     Socket1.DoConnect;
    end;

    procedure TForm1.butServListenClick(Sender: PObj);
    begin
     Socket1.DoListen;
    end;

    procedure TForm1.Button1Click(Sender: PObj);
    begin
     Socket1.SendString(EditBox1.Text + #13);
    end;



    ну не работает, хоть вешайся ;( С прошлого года мучаюсь
  • Dy1 (02.01.11 00:41) [15]
    помогите пожалуйста
  • Dy1 (03.01.11 16:37) [16]
    KOLScktComp (клиент- и серверсокет из Delphi 5).
    Ругается Undeclared identifier: 'WindowsSocketError' на строчках
    else raise ESocketError.CreateResFmt(e_Custom,Integer(@sWindowsSocketError),[SysErrorMessag e(Result),Result,Op]);


    Как решить проблему?
  • Vladimir Kladov © (03.01.11 17:12) [17]
    Чтобы скопировать сообщение компилятора об шибке, надо кликнуть по нему ЛКМ и нажать Ctrl+C. В вашем случае sWindowsSocketError - необъявленная константа. Где вы таких кривых модулей берете. Попробуйте KOLXSocket. Тоже кривой был. Когда понадобился, я его рашпилем, рашпилем...
  • Dy1 (05.01.11 18:14) [18]
    на KOLSocket написал ирк-бота, т.е. клиент работает. А как на нём будет выглядеть сервер? Тест:
    procedure TForm1.Socket1Close(SocketMessage: TWMSocket);
    begin
     memo1.Add('Отключено' + #13#10#13#10);
    end;

    procedure TForm1.Socket1Connect(SocketMessage: TWMSocket);
    begin
     memo1.Add( 'Подключение ' + Socket1.IPAddress + #13#10);
    end;

    procedure TForm1.Socket1Error(SocketMessage: TWMSocket);
    begin
     memo1.Add('Ошибка: ' + Int2Str(SocketMessage.SocketError) + ' (' +
       Socket1.ErrToStr(SocketMessage.SocketError) + ').' + #13#10#13#10);
    end;

    procedure TForm1.Socket1Read(SocketMessage: TWMSocket);
    const
     BufCnt = 1024;
    var
     data: Array[0..BufCnt-1]of Char;
    begin
     while Socket1.Count > 0 do
     begin
       ZeroMemory(@data, BufCnt);
       Socket1.ReadData(@data, BufCnt);
    memo1.Add(data + #13#10);
     end;
    end;
    //
    procedure TForm1.Socket1Accept(SocketMessage: TWMSocket);
    begin
     memo1.Add('Accept' + #13#10);
    end;

    procedure TForm1.Socket1Listen(SocketMessage: TWMSocket);
    begin
     memo1.Add('Listen' + #13#10);//нету
    end;

    procedure TForm1.Button2Click(Sender: PObj);
    begin
     if Socket1.Connected then Socket1.DoClose;
     Socket1.DoConnect;
    end;

    procedure TForm1.Button3Click(Sender: PObj);
    begin
     if Socket1.Connected then Socket1.DoClose;
    end;

    procedure TForm1.EditBox1Char(Sender: PControl; var Key: KOLChar; Shift: Cardinal);
    begin
     if ord(Key) = VK_RETURN Then
       Socket1.SendString(EditBox1.Text + #13#10);
    end;

    procedure TForm1.Button1Click(Sender: PObj);
    begin
     if Socket1.Connected then Socket1.DoListen;
    end;

  • Dy1 (05.01.11 18:21) [19]
    не "слушает"
  • Dy1 (05.01.11 18:49) [20]
    в Button1Click почему-то мешается if Socket1.Connected

    а как сервер получает текст? Socket1Read не отрабатывает.
  • Dy1 (05.01.11 23:22) [21]
    появляется окно вместо отработки события. Например здесь (строка вроде бы 645):
    if Assigned(FOnRead) then FOnRead(Message)
    else MessageBox(HWND_DESKTOP, PChar('WM_SOCKETREAD on socket ' + Int2Str(Message.SocketNumber)), 'Message_Read', MB_OK);

    Что и как нужно сделать?
  • Vladimir Kladov © (06.01.11 14:36) [22]
    OnRead назначали?
  • Dy1 (06.01.11 14:43) [23]
    спасибо, разобрался как делать. Делаю по шаблону, так и не понял нафига переназначать онрид, онклоз и онеррор (почему они не привязываются) и почему при этом работает остальное
  • Vladimir Kladov © (06.01.11 14:46) [24]
    В Delphi делаете? Там отладчик есть. Пошаговый.
 
Конференция "KOL" » Сокеты в KOL
Есть новые Нет новых   [120346   +14][b:0][p:0.002]