关于三层结构中分配IP的问题(200分)

  • 主题发起人 主题发起人 xtrwyf
  • 开始时间 开始时间
X

xtrwyf

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库服务器和应用程序服务器在机器:10.1.3.254上,客户端有N个,用socketconnection和应用程序服务器连接。
问题:当我的应用程序服务器IP改变的时候,
客户端怎样不修改源程序就可以找到应用程序服务器?
我的代码:
socketconnection1.address:=edit1.text;(可在初使化对edit1赋值)
sockeyconnection1.servername:='hopeone';
socketconnection1.open;
系统提示错误:
project prosome.exe raised exception class ESocketConnectionError with message 'No address specified',Process stopped.Use Step or Run to continue.
直接赋值也不行:
socketconnection1.address:='10.1.3.254';
sockeyconnection1.servername:='hopeone';
socketconnection1.open;
也是同样错误。
请问应该怎样动态给sockeyconnection1分配主机IP和服务?
 
说实话,我看不出你的代码有什么问题,最多就是address和servername没必要一起用。
我的应用也碰到过你这个问题,我觉得很简单就解决了,我把地址保存在注册表中,每次
应用启动都去读出地址,然后赋值,代码和你的一样,不过只用了address,而没有用servername,
没有出过任何问题。
 
1。socketconnection1.HostName := computername;
//你要连接的计算机名称
2。socketconnection1.address:=edit1.text;
//你要连接的计算机IP
3。sockeyconnection1.servername:='hopeone' //你要连接的服务程序名称
1或2设置一个即可,3必须设置
如若使用sockeyconnection1必须启动Delphi自带的Socket Server 在Delphi下面有 "E:/Program Files/Borland/Delphi5/Bin/scktsrvr.exe"
你可以现在你的机器上调试
 
1.在你的服务器上定时向目标网络发送广播数据包,可用UDP数据包
2.在客户端启动时侦听服务器广播,如能听到,则设定服务器地址否则认为服务器不存在或未启动
 

Similar threads

后退
顶部