主题:UDP传输数据必须加入组播嘛? 共有51678人关注过本帖 |
---|
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接收端的程序有问题呢?
将我们测试时两端用的程序发给你供参考。 |
|
单帖管理 | 引用 | 回复 |