Форум: "Сети";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c