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

Вниз

Send, Recev, на WinAPI помогите с примерами WinSock   Найти похожие ветки 

 
BlackLord ©   (2002-03-11 16:06) [0]

Господа программисты ответте на один вопрос.

Ниже приведена программа без использования VCL, как получать и отправлять сообщения от Client к Server, не вводя при этом TWndClass?

Как отлавливать Сообщения Windows?

Какой класс у ClientSocket?

Приведите Plz. пример использование recev, recevfrom, send, sendto;
Но желательно не однаразового действия, а по какому либо событию.

program MinClient;

uses
Windows,Messages, WinSock;

var Message:TMsg;
CLS:TSocket;
ID:WSADATA;
AddrCLS:TSockAddrIn;

procedure IntCLS;
begin
WSAStartup($101,ID);
CLS:=socket(PF_INET,SOCK_STREAM,0);
AddrCLS.sin_family:=PF_INET;
AddrCLS.sin_port:=htons(21);
AddrCLS.sin_addr.S_addr:=inet_addr(PChar("100.100.100.1"));
connect(CLS,AddrCLS,SizeOf(AddrCLS));
end;

begin

IntCLS;

while GetMessage (Message, 0, 0, 0) do begin
TranslateMessage (Message);
DispatchMessage (Message);
end;
Halt (Message.wParam);
end.


 
Polevi ©   (2002-03-11 19:33) [1]

чтобы "отлавливать сообщения Windows" нужно окно создать


 
Velocity   (2002-03-15 12:54) [2]

Уфф. Совсем это работать не будет. На http://www.sockaddr.com есть исходники (сишные) клиента - вот там и посмотри


 
digitman ©   (2002-03-15 13:14) [3]

вот, к примеру, фрагмент использования recv() из того же scktcomp.pas. Фрагменты использования прочих интересующих тебя WSAPI-вызовов там тоже имеются, причем - рабочие.

Ну, и чем не пример ?
и что в нем тебе не понятно в нем ?


function TCustomWinSocket.ReceiveBuf(var Buf; Count: Integer): Integer;
var
ErrorCode: Integer;
begin
Lock;
try
Result := 0;
if (Count = -1) and FConnected then
ioctlsocket(FSocket, FIONREAD, Longint(Result))
else begin
if not FConnected then Exit;
Result := recv(FSocket, Buf, Count, 0);
if Result = SOCKET_ERROR then
begin
ErrorCode := WSAGetLastError;
if ErrorCode <> WSAEWOULDBLOCK then
begin
Error(Self, eeReceive, ErrorCode);
Disconnect(FSocket);
if ErrorCode <> 0 then
raise ESocketError.CreateResFmt(@sWindowsSocketError,
[SysErrorMessage(ErrorCode), ErrorCode, "recv"]);
end;
end;
end;
finally
Unlock;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.05.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
1-88489
Ascan
2002-05-07 02:50
2002.05.27
TWebBrowser растет как шарик...


1-88424
VAleksey
2002-05-17 06:28
2002.05.27
*.ini или что-то вроде этого


1-88453
ГС ТОФ
2002-05-17 15:39
2002.05.27
Событие клавиатуры


6-88580
dmitryK
2002-03-16 18:47
2002.05.27
Надо сделать рассылку сообщений (часто и много)


1-88452
Ron
2002-05-17 11:32
2002.05.27
TStringGrid