15crmo与12cr1mov区别:delphi 写的聊天程序.遇到莫名奇妙的问题!

来源:百度文库 编辑:高校问答 时间:2024/04/28 02:51:41
前两天看了DELPHI仲的INDY组件.说到UDP组件.便做了个聊天软件练练手.
经过一天奋战.做好了.但是问题来了.有的人连接正常.有的人连接不了.
连接不了的人.我这边服务器端能接受到客户端发送的消息.但是她们自己接受不了服务器发送的消息.也就是说我的服务器端发送不到客户端(部分人) 我现在就是想不通为何会这样...有网络编程经验的人帮帮我阿.我用的是IDUDPCLIENT组件

问题不在与协议本身,虽然udp是不可靠的连接,但是并不是像字面这样的不可靠,他的不可靠只是协议本身对信息是否收到不做判断而已。

建议你分析一下“连接到的客户端”与“连接不到的客户端”他们的网络环境有什么区别。

要注意你的TCP/IP协议,你的服务器是否做了DHCP服务器.不做的话,是无法指向你的服务器的,你可手动调一下他们TCP协议,将他们的DNS设成服务器的IP地址.这样绝对行.
建议你以后做聊天程序,用DELPHI供的TCPCLIENT和一个TCPSERVER控件,使用TCPCLIENT控件的REMOTEHOST属性和REMOTEPORT属性可以设置远程计算机的IP地址和端口号,利用其CONNECT方法可以连接到指定的计算机.一旦连接到指定计算机,就可用SENDLN方运进行通信.

这和网络情况及udp协议本身有关.
udp是不可靠的连接.建议换用tcp协议.