打印

【ZLG/IP】LM3S8962以太网通信UDP无法发送数据

[复制链接]
900|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ssuperliang|  楼主 | 2014-10-20 00:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实在没办法了求有过经验的朋友帮帮忙,这个双休日简直煎熬啊搞不粗来!!
下面是周公uCOS+UDP通讯的例程中的两个核心任务,并且我已经测试成功,【可以发送和接收】!!
但是这里的发送数据是将接收到的数据返回serv端,
而我需要的是【单独发送我想发送的数据】。
那我就想把recvfrom()去掉不就行了,可是【总是发送不出去啊】!!!
而且加了我改的发送任务后,连这个接收任务也无法执行了。。。
不知道问题所在,求高手解答,谢谢了!!!
周公的TCP/IP协议栈的socket API介绍:ht tp:/ /w ww.docin.com/p-57998041.htm l
周公的TCP/IP协议栈的实现过程:ht tp:/ /blo g.chinaunix.net/uid-27 ... 1a374a433f596ad1440
【上面两个链接,没有用过ZLG/IP的朋友看下可以帮助理解下面的代码,以便更快解决我的问题】


/*********************************************************************************************************
** Function name:         TaskB
** Descriptions:          等待UDP的信号量
** input parameters:      无
** output parameters:     无
** Returned value:        无
*********************************************************************************************************/
void TaskB (void  *pdata)
{
    void *  UdpTemp;
    uint8   eer;   
   
    while (1) {
            UdpTemp = OSQPend(RecUdpQFlag, 0, &eer);
        if (eer == OS_NO_ERR) {
                    Udp_Process((Rec_Ptr *)UdpTemp);
                    eer = eer;
            }
    }   
}

/*********************************************************************************************************
** Function name:         TaskD
** Descriptions:          UDP协议数据接收和发送任务
** input parameters:      无
** output parameters:     无
** Returned value:        无
*********************************************************************************************************/
void TaskD (void  *pdata)
{
    uint8   rec_buffer[100];                                                                            /*  发送缓存区                  */
    SOCKET        s;
    int     rec_coute, send_coute;
    uint16  iii;
    struct sockaddr servaddr, clientaddr;
        OSTimeDly(60);
        servaddr.sin_family  = 0;                                                                                        /*  设置客户机IP地址            */
        servaddr.sin_addr[0] = 192;
        servaddr.sin_addr[1] = 168;
        servaddr.sin_addr[2] = 0;
        servaddr.sin_addr[3] = 55;
        servaddr.sin_port    = 1026;                                                                                  /*  设置服务器端口号            */
        s=*socket(0, SOCK_DGRAM, UDP_PROTOCOL);                                                        /*  建立SOCKET                  */
        clientaddr.sin_family = 0;
        clientaddr.sin_addr[0] = NetPort[0].My_Ip[0];                                            /*  设置本地IP地址              */
        clientaddr.sin_addr[1] = NetPort[0].My_Ip[1];
        clientaddr.sin_addr[2] = NetPort[0].My_Ip[2];
        clientaddr.sin_addr[3] = NetPort[0].My_Ip[3];
        clientaddr.sin_port = 1025;                                                                                  /*  设置本地监听端口号          */
        iii = bind((SOCKET * ) & s, (struct sockaddr *) & clientaddr, sizeof(clientaddr));        
                                                                                                                                             /*  绑定服务器地址              */
        while (1) {
                rec_coute=recvfrom( s, rec_buffer, 100, 0, (struct sockaddr *) & servaddr, &iii );         
                                                                                                                                            /*  接受数据                    */
                if(rec_coute > 0) {
                           send_coute = sendto(s, rec_buffer, rec_coute, 0,
                               (struct sockaddr *) & servaddr,
                                sizeof(servaddr) );
                                                                                                                                            /*  把接受的数据返回            */                        
                        send_coute = send_coute;                                                                        /*  防止编译警告                */
                }
        }   
}

相关帖子

沙发
dirtwillfly| | 2014-10-20 19:27 | 只看该作者
没用过ZLG/IP,recvfrom()函数里都做了什么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝