UDP为什么出现这样的情况,我实在弄不明白。(100分)

  • 主题发起人 主题发起人 crazycock
  • 开始时间 开始时间
C

crazycock

Unregistered / Unconfirmed
GUEST, unregistred user!
今天这个问题真让我头大!!!
NMUDP用过不少次了,但是今天突然发现一个奇怪的问题,请大家分析一下是什么原因:
1。我在局域网里用UDP通讯,但是我朝某一个IP地址发送内容的时候,总是被自己接收到了这些数据。
在接收的代码里通过FromIP的提示,发现,收到的内容就是自己发出去的内容,而且奇怪的是FromIP
是我所发往的地址(该地址有计算机,但是没有运行任何程序响应这个信号),如果我发送的目标地址
上没有计算机的时候就收不到我发出去的信号。(例如我给一个空的IP地址发送内容,就不会在自己
的机器上收到内容)提示:LocalPort=1357,RemotePort=7531(其他的也试过了)
2。如果我在NMUDP的RemoteHost中填目标计算机的名称,也会有上面的情况,而且FromIP已经被翻译成
那个计算机的IP地址了。
3。这样的程序在通过Internet通讯的时候没有发生这样的情况。(即RemoteHost是Internet上另外一个
机器的IP时没有这样的情况)
 
lool 1 look
 
大家好好考虑一下,是什么原因呢?
 
看看子网掩码有没有问题?
 
没有问题,
 
提前……
 
换一个udp控件呗
 
这个问题我也遇到过,局域网内用UDP朝没有客户端的机子发数据
会产生服务端接收数据的异常,屏蔽服务端接收数据的异常就不会有问题了。。
在INTERNET上我没试过,不过我想是发到INTERNET上数据包找不到回来的路吧。。:)
 
To forss:
用过TUDPSock吗?不知道怎么样?
 
是不是广播了?
 
如果你愿意,可以发一个最简单的例子给我,我帮你看一下。zw84611@sina.com
 
等星期一吧,我现在回家了。
你也可以自己写着试试,最简单的例子,朝网络里的一个机器上面发随机的一些文字,
然后你就可以收到回复了,而且显示发送的对象是你刚才发给的那个机器的IP地址。
 
UDP不太适合传输数据吧,丢包的情况太严重了,
好像用TCP向本网段的xxx.xxx.xxx.255地址发数据也可以实现广播的。
 
OopsWare大虾:
TCP是面向连接的,好象不支持广播吧。:)
 
我要传的是内容是Char类型的,请问,我用其他NM控件代替NMUDP,是选NMStrm呢?还是NMMsg呢?
 
提前………………………………………………………………
 
to zw84611:
是我搞错了。
to crazycock:
你的源端口和目标端口不是一个,怎能收到自己的信息?
如果你的程序中同时包含两个 UDP 控件(一个接收,一个发送),是不是
接收的收到了数据没有判断是谁发的,就又发了回去,让他出现了循环?
 
没有,我只用了一个NMUDP。
而且,我也没有用任何循环语句,非常简单的几句话而已。
 
有没其他代理或网关,把数据传发了?
 
哦,我倒是在这个机器上安装了一个代理,有影响吗?
 

Similar threads

后退
顶部