主题:UDP传输数据必须加入组播嘛?

  共有35994人关注过本帖    
lm
1楼


UDP传输数据必须加入组播嘛?  发帖心情 Post By:2004-4-27 17:05:00   [只看该作者]

基于UDP连接,客户端方式,不能传输数据
我的代码如下:
       .
       .
       .
char *txbuf="This is a test!";
int localport;
InitEthernetNet(MYIP,NETMASK);
localport=MyPort();
conno=ConnOpen
(DESTIP,"UDP/IP",localport,DESTPORT,NONBLOCKOPEN);
        .
        .
        .
ConnWrite(conno,txbuf,len);
其中MYIP为NB200的ip地址,NETMASK为子网掩码,DESTIP为目的IP地址,DESTPORT为目的端口号。

我的程序和UDP例程所不同的只是没有加入组播,不过这应该不影响程序的正确执行。请问问题出在哪里?

btw:上位机的UDP接收程序已经过测试,没有问题。

  单帖管理 | 引用 | 回复 回到顶部
zhl
2楼


  发帖心情 Post By:2004-4-27 17:19:00   [只看该作者]

UDP传输数据不一定要加入组播。
稍后我们整理一个UDP的传输例程email给你,仅供参考。请告之email地址。

  单帖管理 | 引用 | 回复 回到顶部
lm
3楼


  发帖心情 Post By:2004-4-28 8:51:00   [只看该作者]

hustlemon@163.com.请尽快发给我。

  单帖管理 | 引用 | 回复 回到顶部
zhl
4楼


  发帖心情 Post By:2004-4-28 9:38:00   [只看该作者]

程序已发出,请查收。

  单帖管理 | 引用 | 回复 回到顶部
lm
5楼


  发帖心情 Post By:2004-4-28 11:55:00   [只看该作者]

我是按照你们的例程编的,就是不行
基于TCP的连接和基于udp的服务器方式都试验通过
就是UDP客户方式主动发送数据不行,已经一个星期了,我找不出问题在哪里
只好把程序全部贴出来,请帮忙分析一下吧

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <bios.h>
#include <iostream.h>
#include <time.h>
#include <etr_tcp.h>

#define DESTIP "202.114.13.241"  /*服务器地址*/
#define DESTPORT 9400            /*服务器端口*/

main()
{
int conno,len;
char *txbuf="This is a test!I am lemon!";
InitEthernetNet("202.114.13.233","255.255.255.192");
conno=ConnOpen(DESTIP,"UDP/IP",2001,DESTPORT,NONBLOCKOPEN);
if(conno<0)
{
TermEthernetNet();
return -1;
}
while(!ConnIsEstablished(conno))
{
}
for(;;)
if(ConnCanSend(conno,len))  break;
len=ConnWrite(conno,txbuf,len);
if(len<0)
{
ConnClose(conno);
TermEthernetNet();
return -1;
}
ConnClose(conno);
TermEthernetNet();
return len;
}





  单帖管理 | 引用 | 回复 回到顶部
zhl
6楼


  发帖心情 Post By:2004-4-28 12:00:00   [只看该作者]

我们测试时掩码用的“255。255。255。0”,你这种情况“255.255.255.192”我们需要再试试。

  单帖管理 | 引用 | 回复 回到顶部
lm
7楼


  发帖心情 Post By:2004-4-28 15:34:00   [只看该作者]

我们这里的子网掩码就是“255.255.255.192”,麻烦你们试验一下。

  单帖管理 | 引用 | 回复 回到顶部
zhl
8楼


  发帖心情 Post By:2004-4-28 16:52:00   [只看该作者]

我们准备明天作,你那儿能否作一个24位掩码(255.255.255.0)的试验,以排除其他的问题。

  单帖管理 | 引用 | 回复 回到顶部
lm
9楼


  发帖心情 Post By:2004-4-28 20:15:00   [只看该作者]

我们这做不了这种试验.

IP       202.114.13.233
子网掩码 255.255.255.192
转化为二进制:
I P 地址 11001010.01110010.00001101.11101001  
子网掩码 11111111.11111111.11111111.11000000  
AND运算 
     11001010.01110010.00001101.11000000 
转化为十进制后为: 
      202.114.13.192
以我的理解,计算出来的网络地址都是一样的,应该不存在什么问题啊.为什么其它情况都可以,就是UDP客户方式不行呢.

  单帖管理 | 引用 | 回复 回到顶部
x10
10楼


  发帖心情 Post By:2004-4-28 21:58:00   [只看该作者]

我们查看了代码,发送应当与掩码无关,只有明天做了实验才能最后答复。如果lm今天晚上看到帖子,不防试试blocking方式,谢谢!

  单帖管理 | 引用 | 回复 回到顶部
lm
11楼


  发帖心情 Post By:2004-4-29 9:20:00   [只看该作者]

阻塞方式也试过了,还是不行.

  单帖管理 | 引用 | 回复 回到顶部
zhl
12楼


  发帖心情 Post By:2004-4-29 10:08:00   [只看该作者]

采用你程序中的IP和掩码作了测试,UDP通讯完全正常,和掩码没有关系。会不会UDP接收端的程序有问题呢?
将我们测试时两端用的程序发给你供参考。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

UDP传输数据必须加入组播嘛?

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: