Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
6-1093246459
SPy
2004-08-23 11:34
2004.10.31
Права доступа к файлам


14-1097760466
GavrilaMama
2004-10-14 17:27
2004.10.31
Тип жесткого диска - динамический... Как исправить?


14-1097473776
RDA
2004-10-11 09:49
2004.10.31
Script под Inno Setup для исталяции Firebird 1.5


14-1097499849
quickblack
2004-10-11 17:04
2004.10.31
Порты для интернета


1-1097589162
White__
2004-10-12 17:52
2004.10.31
Работа с Excel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский