Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
1-1097683247
Mihail
2004-10-13 20:00
2004.10.31
как присоеденить скаченый компонент, поместить его на палитру ?


4-1096369543
Comp
2004-09-28 15:05
2004.10.31
Как отрисовывать графику в STATUSBAR-e?


1-1097756982
BFG9k
2004-10-14 16:29
2004.10.31
ToolBar: кнопки справа


8-1091469093
Кириешки
2004-08-02 21:51
2004.10.31
Проблема с sndPlaySound


14-1097504068
quickblack
2004-10-11 18:14
2004.10.31
Просмотр avi и wav на DVD-плеере