主題:UDP傳輸數據必須加入組播嘛? 共有54974人關注過本帖 |
---|
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接收端的程序有問題呢?
將我們測試時兩端用的程序發給你供參考。 |
|
單帖管理 | 引用 | 回復 |