一个很笨的问题,请大家不要笑(在线等)(50分)

  • 主题发起人 主题发起人 tty_xiaotao
  • 开始时间 开始时间
T

tty_xiaotao

Unregistered / Unconfirmed
GUEST, unregistred user!
我第一次使用INDY的UDPSERVER控件,如果我使用UDPCLIENT发送一个消息到本机
那么本机如果没有开SERVER的话,程序出错,报10054错误,
请问这个错误是怎么产生的?
有没有什么办法不产生这个错误呢?
这个问题发生在我往所有的开着的机器上发UDP报的时候,当然不能所有的机器上都有
server呀,总是这样报错,请指教哦
 
Indy有处理Socket异常的机制吧。
 
能不能给段代码解释一下?
谢谢啦
 
SERVER必须打开,如果这个不打开,通信端口是不会打开的,那么你肯定会报错只有一个可能
就是你用TRY EXCEPT,抓获异常的时候不处理具体代码你去找一找错误处理的例子基本上全部都可以
 
你的意思是说要是SERVER不打开,我这个包就没有发出去还是怎么回事?
要是我的网络拓扑很复杂,UDP丢包很严重,那我该怎么办呢?
还有这个超时设置有什么用处呢?谢谢指教呀
 
大家给个建议吧,我等的好着急的,谢谢谢谢谢谢。。。。。。。。。。。。
 
难道大家都不知道吗?
 
你可以用时间来控制啊!每隔多久就发一次,给一个标志,一直到发出为止
这样你就不必为有没有收到而烦恼啦!
 
弄不明白你的意思。如果服务器不开,谁收?没有机器收报,那不出报告异常才怪。你到底
想干什么呢?再描述一遍。这种小儿科的问题根本不是人家不愿意回答你,而是你没有把问
题描述清楚。
 
就是我向外面群发UDP包,但是可能有的机器没有开server,那么有server的应该有回应
但是没有server的就应该把包丢掉,可是现在只要机器开着(但是没有开server),我的数据包过去就报错了。
超时标志是说这个报发出了没有应答吧,我想这个机器没有开server也是没有应答的,可是发给那种没有开机的机器,显示超时,发给那种开机了但是没有开server的机器,却报错,
郁闷了半天了
用了
try
except,没有效果
呵呵,刚才是急了发牢骚,
不好意思了
谢谢DFW的帮忙了
 
1.用UDP发包,只要设置正确远程IP和PORT
2.UDP发包只管从本机发出去正常,不管是否发到或远程是否存在
3.UDP的CLIENT和SERVE只是逻辑上的,用UDPCLIENT和UDPSERVER控件都可以收发包
他的收发不象TCP一样要建立连接。
4.你的问题描叙得不详细,如果你的程序用UDPCLIENT控件发送包,只要ACTIVE:=TRUE,
HOST:=有效IP,PORT:=有效端口,就可以了,如果你用UDPSERVER发送,需要保证
DEFAULT:=没有被使用的端口,ACTIVE:=TURE,并且SEND时的AHOST和APORT都是有效
的,就不会报任何错误。
5.所以你的错误不可能是因为远程是否启动接收程序(你的SERVER端)而引起的,建议你检
查一下你的控件的属性设置,并且关键的是ACTIVE是否TRUE,HOST,PORT是否合法。
 
呵呵,谢谢大家了,
我直接使用了API了,突然发现还是API用的比较顺手,
谢谢上面的各位了
谢谢
 
后退
顶部