Soket网络通讯!

grjs2004 2007-04-14 05:05:50
如何在客户端得到服务器的IP和计算机名称!
客户端有ClientSoket,服务器有ServerSoket!
...全文
456 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
grjs2004 2007-05-04
  • 打赏
  • 举报
回复
就这样获得的:
ClientSocket.port跟ServerSocket.port一致
ClientSocket.Host
ClientSocket.Address
zpd1047 2007-04-22
  • 打赏
  • 举报
回复
楼主有没有考虑过DNS?
grjs2004 2007-04-20
  • 打赏
  • 举报
回复
怎么没人来啊!
要我散多少分,才有人来帮我啊???

grjs2004 2007-04-19
  • 打赏
  • 举报
回复
怎么没有人来啦!????
情帮帮忙啊!
grjs2004 2007-04-15
  • 打赏
  • 举报
回复
谢谢!
请继续!

还有邮件发送与接收的实现!
希望不吝赐教!
谢谢!
show_20 2007-04-14
  • 打赏
  • 举报
回复
最原始的办法,,,也是最常用的办法.....

1. 服务端启动后,把IP用FTP协义上传一个TXT文件到网络上,,,, 比如http://www.csdn.com/ip.txt,,,,,内容比如: 127.0.0.1 ABC

2. 客户端要连接的时候,从http://www.csdn.com/ip.txt下载这个文件后,
读出里面的127.0.0.1和ABC

呵,这是我第一次回答问题,,,,,虽然没有技术性可言,但是现在常用的就是这种做法
gobiz 2007-04-14
  • 打赏
  • 举报
回复
当然,如果你非要实现这样的功能,我只能建议你在服务器端向一个固定的地址发送信息,比如说一个公共邮箱或者其它之类的,那么你的客户端就可以在这个固定的地址得到服务器端的相关信息了!
gobiz 2007-04-14
  • 打赏
  • 举报
回复
首先我想问一个问题,如果你的客户端不知道服务器端的IP或者计算机名称,那么它怎么能够找到服务器,并发送链接请求呢?
其次如果你的客户端已经链接到服务器端了,那么还需要从服务器端得到服务器的IP地址或者是计算机名称吗?
当然,如果你是使用IP方式链接的服务器端,那么想直到服务器端的计算机名称,或者反之,那么楼上的方法就可以实现了!
pzl625 2007-04-14
  • 打赏
  • 举报
回复
从客户端发送一个信息到服务器,表示查询服务器的IP和计算机名
触发事件服务器端的Button1Click
procedure TForm1.Button1Click(Sender: TObject);
var
Ip:string;
Ipstr:string;
Buffer:Array[1..32] of char;
i:integer;
WSData:TWSAdata;
Host:PHostEnt;
begin
if WSAstartup(2,WSData)<>0 then
begin
ShowMessage('WS2_32.DLL初始化失败!');
halt;
end;
try
if GetHostName(@Buffer[1],32)<>0 then
begin
ShowMessage('没有得到主机名!');
halt;
end;
except
ShowMessage('没有成功返回主机名');
halt;
end;
Host := GetHostByName(@Buffer[1]);
if Host = nil then
begin
ShowMessage('IP地址为空');
halt;
end
else
begin
Edit2.Text := Host.h_name;
for i:=1 to 4 do
begin
Ip:=IntToStr(Ord(Host.h_addr^[i-1]));
if i<4 then
Ipstr := Ipstr + Ip + '.'
else
Edit1.Text:=Ipstr+Ip;
end;
end;
WSACleanup;
end;
end.
得到结果后再发送到客户端就可以的哦

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧