Главная страница
    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.039 c
8-1090225353
dedMazDie
2004-07-19 12:22
2004.10.31
Быстрая работа с файлами Jpeg


14-1097275955
saNat
2004-10-09 02:52
2004.10.31
Rational Rose


3-1096731972
DIS
2004-10-02 19:46
2004.10.31
FastReport и поле memo


14-1097323092
андрей_
2004-10-09 15:58
2004.10.31
Какой монитор долговечнее?


4-1095987259
thoth
2004-09-24 04:54
2004.10.31
Проблема с winexec и несколькими задачами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский