找一个共享目录,服务器程序一旦启动就将服务器的机器名及IP地址一并写到这个共享目录下的指定文件中,客户端程序启动时直接读去那个文件就是了。另一中方法可能需要在服务器程序中建立COM/DCOM对象,客户端通过COM CLASSID建立与服务器的连接,进而获得机器名和IP等其他信息。

解决方案 »

  1.   

    在客户端的窗体上放一个TDCOMConnection,设置其ServerGUID为服务器程序DCOM的GUID,就能连接服务器程序,在通过DCOM对象接口获得其他信息。
      

  2.   

    uses Winsock;
    ...
    function getIPs: TStrings;typeTaPInAddr = Array[0..10] of PInAddr;PaPInAddr = ^TaPInAddr;varphe: PHostEnt;pptr: PaPInAddr;Buffer: Array[0..63] of Char;I: Integer;GInitData: TWSAData;beginWSAStartup($101GInitData);Result:=TStringList.Create;Result.Clear;GetHostName(Buffer,SizeOf(Buffer));buffer:=你的服务器名;phe := GetHostByName(buffer);if phe = nil thenbeginExit;end;pPtr := PaPInAddr(phe^.h_addr_list);I := 0;while pPtr^[I] <> nil dobeginResult.Add(inet_ntoa(pptr^[I]^));Inc(I);end;WSACleanup;end; procedure TForm1.Button1Click(Sender: TObject);beginmemo1.Lines:=GetIps;end;
      

  3.   

    服务端用开一个线程发组播消息(组播的IP你可以固定)客户端取服务端的IP就直接到组播组中去取。。
      

  4.   

    楼上几位兄弟恐怕事没理解搂主的的意图吧!搂主是想实现MSSQL客户端自动找寻MSSQL Server的功能