unit main;interfaceuses
ScktComp, // 必须要使用ScktComp,不然不能声明TWinSocketStream对象
WinSock,Dialogs,SysUtils,Forms;
//Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
//Dialogs, StdCtrls;
const
SocketHost = '127.0.0.1'; //服务器端地址
SocketPort = 600; //服务器端端口 procedure ClientSocket1Read( Sender: TObject; Socket: TCustomWinSocket );var
clientSocket: TClientSocket;
form1:tform;
clientSocket1: TCustomWinsocket; function AllocTimeStampReq(IMPU: PChar;HashValue: PChar):pchar;stdcall;
implementation function AllocTimeStampReq(IMPU: PChar;HashValue: PChar) :pchar;stdcall;
var
wSAData: TWSAData;
i: Integer;
sendBuffer,recvBufer : array of byte;
begin
if WSAStartup($0101, wSAData) <> 0 then
begin
raise Exception.Create('AllocTimeStampReq.DLL cannot startup winSock DLL. please hava a try latter... ...');
WSACleanup;
end; clientSocket := TClientSocket.Create(nil);
clientSocket.OnRead := ClientSocket1Read; //编译出错 incompatible type:'method pointer and regular procedure'
clientSocket.Host := SocketHost;
clientSocket.Port := SocketPort;
clientSocket.ClientType:=ctNonBlocking;
clientSocket.Active := true; //clientSocket.Open; setLength(sendBuffer,20); for i := 0 to 20 do
begin
sendBuffer[i]:=i;
end; setLength(recvBufer,20);
clientSocket.socket.SendBuf(sendBuffer,20); showmessage(inttostr(clientSocket.Socket.ReceiveLength));
if clientSocket.Socket.ReceiveLength <> 0 then
begin
//clientSocket.Socket.re
clientSocket.socket.ReceiveBuf(recvBufer,20);
// result := pchar( strcat( pchar(recvBufer[10]) , pchar(recvBufer[12]) ));
end;
//result:=pchar(clientSocket.socket.ReceiveText);
end; procedure ClientSocket1Read( Sender: TObject; Socket: TCustomWinSocket );
begin
try except end;
end;
ScktComp, // 必须要使用ScktComp,不然不能声明TWinSocketStream对象
WinSock,Dialogs,SysUtils,Forms;
//Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
//Dialogs, StdCtrls;
const
SocketHost = '127.0.0.1'; //服务器端地址
SocketPort = 600; //服务器端端口 procedure ClientSocket1Read( Sender: TObject; Socket: TCustomWinSocket );var
clientSocket: TClientSocket;
form1:tform;
clientSocket1: TCustomWinsocket; function AllocTimeStampReq(IMPU: PChar;HashValue: PChar):pchar;stdcall;
implementation function AllocTimeStampReq(IMPU: PChar;HashValue: PChar) :pchar;stdcall;
var
wSAData: TWSAData;
i: Integer;
sendBuffer,recvBufer : array of byte;
begin
if WSAStartup($0101, wSAData) <> 0 then
begin
raise Exception.Create('AllocTimeStampReq.DLL cannot startup winSock DLL. please hava a try latter... ...');
WSACleanup;
end; clientSocket := TClientSocket.Create(nil);
clientSocket.OnRead := ClientSocket1Read; //编译出错 incompatible type:'method pointer and regular procedure'
clientSocket.Host := SocketHost;
clientSocket.Port := SocketPort;
clientSocket.ClientType:=ctNonBlocking;
clientSocket.Active := true; //clientSocket.Open; setLength(sendBuffer,20); for i := 0 to 20 do
begin
sendBuffer[i]:=i;
end; setLength(recvBufer,20);
clientSocket.socket.SendBuf(sendBuffer,20); showmessage(inttostr(clientSocket.Socket.ReceiveLength));
if clientSocket.Socket.ReceiveLength <> 0 then
begin
//clientSocket.Socket.re
clientSocket.socket.ReceiveBuf(recvBufer,20);
// result := pchar( strcat( pchar(recvBufer[10]) , pchar(recvBufer[12]) ));
end;
//result:=pchar(clientSocket.socket.ReceiveText);
end; procedure ClientSocket1Read( Sender: TObject; Socket: TCustomWinSocket );
begin
try except end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货