-
Начал разбираться с сокетами в 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 отдаются как страница
Все нормально работает. Как архив. -
MTsv DN, а зачем две страницы с загрузками? Тем более что там есть разные версии файлов?
У кого-нибудь есть еще библиотеки для работы с сокетами? Может кто поделиться? -
MTsv DN (04.12.09 22:26) [3]Вы про:
http://kolmck.net/
и
http://kolnmck.kolmck.net/
???
Первый сайт Кладов ведет, второй mdw и я (когда время есть)... В принципе, это 2 разных сайта... -
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]);
Как решить проблему? -
Чтобы скопировать сообщение компилятора об шибке, надо кликнуть по нему ЛКМ и нажать 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);
Что и как нужно сделать? -
OnRead назначали?
-
Dy1 (06.01.11 14:43) [23]спасибо, разобрался как делать. Делаю по шаблону, так и не понял нафига переназначать онрид, онклоз и онеррор (почему они не привязываются) и почему при этом работает остальное
-
В Delphi делаете? Там отладчик есть. Пошаговый.