![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Send, Recev, на WinAPI помогите с примерами WinSock [D6, Win95/98, WinME, Win2k]
BlackLord © (2002-03-11 16:06:00)Господа программисты ответте на один вопрос.
Ниже приведена программа без использования 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.
digitman (2002-03-15 13:14:00) [1]вот, к примеру, фрагмент использования 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;
Velocity (2002-03-15 12:54:00) [2]Уфф. Совсем это работать не будет. На http://www.sockaddr.comесть исходники (сишные) клиента - вот там и посмотри
Polevi (2002-03-11 19:33:00) [3]чтобы "отлавливать сообщения Windows" нужно окно создать