function GetClientIP:integer;
var
wVersionRequested : WORD;
wsaData : TWSAData;
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
s1:string;
vr ,vb :Boolean;
lpBuffer :PChar;
nSize :DWORD;
begin
{启动 WinSock}
try
nSize := 1000;
GetMem(lpBuffer, 1000);
vb:= GetComputerName(lpBuffer,nSize);
if vb then
DMPublic.sLoginComputerName :=lpBuffer;
if vb then
FreeMem(lpBuffer); wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);{计算机名} GetHostName(@s, 128);
p := GetHostByName(@s);
// ShowMessage(Format('Computer name is ''%s''.', [p^.h_Name]));{IP地址}
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
// ShowMessage(Format('IP address is %s.',[p2]));
s1 :=string(p2);
sIP :=s1;
WSACleanup;
except
sIP :='Ip error'
end;
end;
var
wVersionRequested : WORD;
wsaData : TWSAData;
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
s1:string;
vr ,vb :Boolean;
lpBuffer :PChar;
nSize :DWORD;
begin
{启动 WinSock}
try
nSize := 1000;
GetMem(lpBuffer, 1000);
vb:= GetComputerName(lpBuffer,nSize);
if vb then
DMPublic.sLoginComputerName :=lpBuffer;
if vb then
FreeMem(lpBuffer); wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);{计算机名} GetHostName(@s, 128);
p := GetHostByName(@s);
// ShowMessage(Format('Computer name is ''%s''.', [p^.h_Name]));{IP地址}
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
// ShowMessage(Format('IP address is %s.',[p2]));
s1 :=string(p2);
sIP :=s1;
WSACleanup;
except
sIP :='Ip error'
end;
end;
serversocket1.socket.Connections[0].RemoteAddress ;
....
客户机地址:Mysocket1.Socket.RemoteAddress;
Socket对象是ServerSocket和ClientSocket控件的一个很有用的对象
Windows Socket error:(10057), on API 'getpeername'
不知何意,请指教!!心急如焚
你先检查一下client的代码是否正确
是否已经连接到了Server
能不能讨论一下原因,而且,OnClientDisconnect事件是响应的,奇怪!!