查看: 5783|回复: 3

[MQX] 52259 demo板,MQX中利用socket建立的server client 模式的tcp连接出现问题。

[复制链接]

该用户从未签到

3

主题

18

帖子

0

新手上路

Rank: 1

积分
51
最后登录
1970-1-1
发表于 2011-8-11 17:53:17 | 显示全部楼层 |阅读模式
 我用的CW 10.1利用新建工程向导建立了基本的RTCS工程,然后参考“MQX库文件.pdf”里边的例程写两个socket程序,一个是单片机端的server端,运行正常,一个是单片机端的client端,总是出现错误,电脑端我用的网络调试助手,总是连接不上,然后用wireshark监视网口发现问题如下:
 
新建 BMP 图像.JPG
我的clientduan程序如下:
/*
 * socket_client.c
 *
 *  Created on: 2011-8-10
 *      Author: user
 */
 
#include "main.h"
#include
 
void socket_client()
{
        /*client declaration of the variables*/
        sockaddr_in addr;
        uint_32 sock;
        uint_32 result;
        uint_16 Dport = 14875;
        uint_32 bind_stat;
        uint_32 ch_status;
        uint_32  opt_length = sizeof(uint_32);
        uint_32  opt_value = FALSE;
        //uint_32 sendback;
        uchar cRecvBuff[25] = {0};
        uchar cSendBuff[25] = "Hello I am the client.\n";
        /************************************************/
                            
        /************************************************/
        addr.sin_family = AF_INET;
        addr.sin_port   = Dport;
        addr.sin_addr.s_addr = IPADDR(192,168,1,2);
        /*client declaration of the variables*/ 
                                     
        /*client codes*/
        sockk:       
        sock = socket (AF_INET,SOCK_STREAM,0);
        //sock = socket (AF_INET,SOCK_DGRAM,0);
        if (sock == RTCS_SOCKET_ERROR)
        {
         printf("\ncreating socket failed.%lx.",sock);
        _time_delay(1000);
        goto sockk;
        }
        else
        {
        printf("\ncreating socket succed.\n");  
        }
        /*changing the socket option*/
        ch_status = setsockopt(sock,SOL_TCP,OPT_SEND_NOWAIT,&opt_value,opt_length);
        if (ch_status != RTCS_OK)
        printf("\nSUCCESS, setsockopt() SUCCEED with error %lx", ch_status);
bindd:          
        bind_stat = bind (sock,&addr,sizeof(addr));
        if (bind_stat == RTCS_OK)
        {
        printf("\nbindding succed.\n"); 
        }
        else
        {
        printf("\nbindding failed.%lx.",bind_stat); 
        _time_delay(1000);
        goto bindd;
        }
/////////////////////////////////////////////
/////////////////////////////////////////////
 
        connectt: 
        result = connect(sock,&addr,sizeof(addr));
        if (result != RTCS_OK)
        {
        printf("\nError--connect() failed with error code %lx.",result);
        //_time_delay(1000);
        //goto connectt;
        } 
        else 
        {
        printf("\nConnected to %lx, port %d.",addr.sin_addr.s_addr, addr.sin_port);
        }
        ///////////////////////////////////////////////                                                 
        while(TRUE)
        {
        _time_delay(1000);
        recv (sock,(void *)cRecvBuff,sizeof(cRecvBuff),0);
        send (sock,(void *)cSendBuff,sizeof(cSendBuff),0);
        printf("running task socket_client");
        }
   /*client codes*/                  
}
 
 
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

3

主题

18

帖子

0

新手上路

Rank: 1

积分
51
最后登录
1970-1-1
 楼主| 发表于 2011-8-11 17:54:34 | 显示全部楼层

RE:52259 demo板,MQX中利用socket建立的server client 模式的tcp连接出现问题。

忘记说明了,我单片机的IP地址为192.168.1.3,电脑的IP地址为192.168.1.2

该用户从未签到

3

主题

18

帖子

0

新手上路

Rank: 1

积分
51
最后登录
1970-1-1
 楼主| 发表于 2011-8-11 19:42:00 | 显示全部楼层

RE:52259 demo板,MQX中利用socket建立的server client 模式的tcp连接出现问题。

搞定!是freescale的参考程序出的问题!bind应该绑定的是本地IP和本地端口,在他的参考程序里绑定的是远程服务器的IP和端口,不知道怎么会出现如此重大的错误呢!呵呵,还好问题解决了!希望大家不会出现类似的问题!
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-8-13 14:34:50 | 显示全部楼层

    RE:52259 demo板,MQX中利用socket建立的server client 模式的tcp连接出现问题。

    呵呵,没帮上忙,例程里面可能连接的和你现实的情况不一样。
    该会员没有填写今日想说内容.
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-12 04:06 , Processed in 0.093426 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表