请教B/S的编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:39:16
如果运行时服务器端被迫需要更改IP地址的话,那么客户端不就无法与主机再连接了吗?
该如何处理
能解释下吗
我没有分了
谢谢!

没分不要紧,大家一起来学习研究.呵呵!
其实一般不管是C/S或B/S架构,只要他是基于TCP/IP的网络客户机服务器程序,一般很少有人会只单单在客户机程序里使用IP去进行连接.不然还要DNS服务器做什么啊.呵呵,所以,一般可以根据计算机名或URL主址进行访问,先进行域名解析,再去连接服务器.
这样,当服务器改变IP的时候,客户机会在检查到连接断开时重新连接,这里会重新对服务器地址进行解析,以获取服务器当前最新IP.当然,这表示,如果在局域网内使用时,需要额外架一台域名解析服务器.
---------------------------------
//下面给一个Delphi版的由主机名或URL解析到IP的例程:
//因为里面使用全部是winsock API,所以只需简单语法翻译,更写为其它语言版本.
function HostToIP(Name: string; var Ip: string): Boolean;
var
wsdata : TWSAData;
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
WSAStartup ($0101, wsdata);//这里是1.1版本,也可以改为较新版本
try
gethostname (hostName, sizeof (hostName));
StrPCopy(hostName, Name);
hostEnt := gethostbyname (hostName);
if Assigned (hostEnt) then
if Assigned (hostEnt^.h_addr_list) then
begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then
begin