Форум: "Сети";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизOnRecv и прочее... Найти похожие ветки
← →
доброжелатель (2004-08-20 20:47) [0]Добрый всем вечер.
Я решил не прибегать к помощи чужих нароботок и не использовать чужие компоненты и библиотеки, заодно немного повысить свои познания в области winsock.
Накатал такой интересный код (сейчас может и не работать, писал не память). Который прекрасно работает.
Если я этот весь код запихиваю в собственный класс и уже с ним провожу "испытания".
Но меня заинересовал один момент... Как в "чужих наработках", "генерятся": property onconnect, property ondisconnect, property onerror, property onrecv ? (названия придуманы, но думаю смысл понятен)
Если первые три (property onconnect, property ondisconnect, property onerror) я немного представляю, как делается, но вот как с onrecv у меня воображения не хватает, как это сделать.
Не могли бы вы с нижележащим кодом (или аналогичным по сложности) в классе, "генерить" property onconnect, property ondisconnect, property onerror, property onrecv ну или если слишком накладно, только property onrecv.
И ещё, не предлагайте "подсмотреть" нужное мне в чужих компонентах и библиотеках. На сегодняшний день мне проблематично изучить из-за нехватки времени и тем, что там всё слишком "накручено" и для моего слишком простого класса не понятно.
var
sWsd :WSAData;
sClient : TSOCKET;
sServ : sockaddr_in;
sBuffer : array [0..1024] of char;
begin
sBuffer := "GET / HTTP/1.0"+#13#10#13#10;
WsaStartup (MAKEWORD (2,2), sWsd);
sClient := socket (AF_INET, SOCK_STREAM, IPPROTO_IP);
ZeroMemory(@sServ, SizeOf(sServ));
sServ.sin_family := AF_INET;
sServ.sin_addr := in_addr (inet_addr("127.0.0.1"));
sServ.sin_port := htons(80);
if connect(sClient, sServ, SizeOf(sServ)) <> SOCKET_ERROR then begin
if send (sClient,sBuffer, strlen (sBuffer), 0) <> SOCKET_ERROR then begin
while recv (sClient, sBuffer, 1024, 0) <> 0 do begin
Application.ProcessMessages;
ZeroMemory (@sBuffer, Length (sBuffer));
end;
end;
end;
closesocket (sClient);
WSACleanup;
end;
Очень надеюсь на ваше понимание и помощь! Любое инфо подкрепите простеньким примером, если не сложно.
:)
← →
Verg © (2004-08-21 11:59) [1]
> Любое инфо подкрепите простеньким примером, если не сложно.
А разве это и не будет "посмотреть чужие компоненты и библиотеки"?
Как-то слишком много всяких противоречивых условий на которых вы соизволили бы принять нашу скромную помощь, в оказании которой вам все мы очень нуждаемся.
Вдруг наши простенькие примеры покажутся вам слишком нарученными и непонятными для вашего "слишком простого класса".... Не дай-то Бог....
← →
доброжелатель (2004-08-21 18:37) [2]Verg
Получается помощи ждать не стоит. Но уж примера я точно не получу? Тогда может можно без примера обьяснить?
А вообщето в жизни гораздо больше противоречий в отличие от моего скромного класса...
← →
Digitman © (2004-08-23 08:38) [3]
> доброжелатель (21.08.04 18:37) [2]
> Получается помощи ждать не стоит
"Спасение утопающих - дело рук самих утопающих"(с)
> примера я точно не получу?
загляни в scktcomp.pas, там ты найдешь пример
> можно без примера обьяснить?
http://book.itep.ru
см. раздел "Winsock"
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c