查看: 3950|回复: 5

[其他] MCF52233TCP客户端

[复制链接]

该用户从未签到

7

主题

41

帖子

0

新手上路

Rank: 1

积分
149
最后登录
1970-1-1
发表于 2011-11-23 17:19:48 | 显示全部楼层 |阅读模式
使用MCF52233Demo创建TCP客户端连接,程序如下:(CW10.1)
为何在使用connect链接服务器10.3.0.58的2011端口时,返回RTCSERR_SOCK_INVALID_AF错误呢?
服务器端有个监听的程序一直在工作的呀!
在使用Connect时需要注意哪些,具体流程如何?
 
请指教一下!
/*
 * TCP_MSG_Task.c
 *
 *  Created on: 2011-11-22
 *      Author: qaby
 */
#include "TCP_MSG_Task.h"
void TCP_MSG_Task(uint_32 initial_data)
{
 char Table[]="i am on line";
 sockaddr_in laddr, raddr;
 uint_32 sock, listensock;
 int_32 count;
 uint_32 index;
 uint_32 error;
 uint_16 rlen;
 
 _time_delay(10000);//wait all task is created
 
 raddr.sin_family=AF_INET;
 raddr.sin_port = 2011;
 raddr.sin_addr.s_addr=INADDR_SERVER;//10.3.0.58
 
 /* Create a stream socket: */
 sock = socket(PF_INET, SOCK_STREAM, 0);
 if (sock == RTCS_SOCKET_ERROR)
 {
  printf("\nFailed to create the stream socket.");
  _task_block();
 }
 do
 {
  index=connect(sock,&raddr,sizeof(raddr));
  if(index!=RTCS_OK)
  {
   printf("\nFailed to connect server.");  
  } 
 }while(index!=RTCS_OK);
 
 while(1)
 {
  /* Send back a quote: */
   count = send(sock, Table, strlen(Table), 0);
   if (count == RTCS_ERROR)
   {
    printf("send() failed with error code\n"); 
   }
   else
   {
    printf("message sended\n"); 
   }
  _time_delay(1000);
 }
}
 
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

33

主题

441

帖子

0

新手上路

Rank: 1

积分
7703
最后登录
1970-1-1
发表于 2011-11-23 21:12:56 | 显示全部楼层

回复:MCF52233TCP客户端

RTCS初始化了没?

该用户从未签到

7

主题

41

帖子

0

新手上路

Rank: 1

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

RE:MCF52233TCP客户端

如下:
main_task中有初始化,查看了下TCP中的错误好像是,TCP buffer有问题
但又不知道如何修改。


#include "main.h"

const SHELL_COMMAND_STRUCT Shell_commands[] = {

   /* RTCS commands */
   { "arpadd",    Shell_arpadd },
   { "arpdel",    Shell_arpdel },
   { "arpdisp",   Shell_arpdisp },
   { "exit",      Shell_exit },      
   { "gate",      Shell_gate },
   { "gethbn",    Shell_get_host_by_name },
   { "getrt",     Shell_getroute },
   { "help",      Shell_help },
   { "ipconfig",  Shell_ipconfig },      
   { "netstat",   Shell_netstat },   
#if RTCSCFG_ENABLE_ICMP      
   { "ping",      Shell_ping },      
#endif
   { "telnet",    Shell_Telnet_client },
   { "telnetd",   Shell_Telnetd },
   { "walkrt",    Shell_walkroute },
   { "?",         Shell_command_list },
   { NULL,        NULL },
};
const SHELL_COMMAND_STRUCT Telnetd_shell_commands[] = {
   /* RTCS commands */
   { "exit",      Shell_exit },      
   { "gethbn",    Shell_get_host_by_name },
   { "getrt",     Shell_getroute },
   { "help",      Shell_help },
   { "ipconfig",  Shell_ipconfig },      
   { "netstat",   Shell_netstat },
   { "pause",     Shell_pause },
#if RTCSCFG_ENABLE_ICMP      
   { "ping",      Shell_ping },
#endif
   { "telnet",    Shell_Telnet_client },
   { "walkrt",    Shell_walkroute },
   { "?",         Shell_command_list },     
   { NULL,        NULL }
};
  

TASK_TEMPLATE_STRUCT MQX_template_list[] =
{
/*  Task number, Entry point, Stack, Pri, String, Auto? */
   {MAIN_TASK,   Main_task,   2000,  9,   "main", MQX_AUTO_START_TASK},
   {TCPMSG_TASK,  TCP_MSG_Task,   2000,  7,   "Message",MQX_AUTO_START_TASK},
   {0,           0,           0,     0,   0,      0,                 }
};
/*TASK*-----------------------------------------------------------------
*
* Function Name  : Main_task
* Comments       :
*    This task initializes MFS and starts SHELL.
*
*END------------------------------------------------------------------*/
void Main_task(uint_32 initial_data)
{
     
   /* RTCS init */
       
    rtcs_init();
   
      
   
   /*******************************
   *
   * START YOUR CODING HERE
   *
   ********************************/   

   for (;;)  
   {
      /* Run the shell */
      Shell(Shell_commands, NULL);
      printf("Shell exited, restarting...\n");
   }
   
}

该用户从未签到

7

主题

41

帖子

0

新手上路

Rank: 1

积分
149
最后登录
1970-1-1
 楼主| 发表于 2011-11-24 10:13:56 | 显示全部楼层

RE:MCF52233TCP客户端

Failed to connect server  with error code 1612

该用户从未签到

7

主题

41

帖子

0

新手上路

Rank: 1

积分
149
最后登录
1970-1-1
 楼主| 发表于 2011-11-24 11:13:49 | 显示全部楼层

RE:MCF52233TCP客户端

问题解决了,RTCS手册上说Receive-Buffer Size和Send-Buffer Size默认值是4380,可实际创建的Socket为-1,需要使用setsockopt重新设置就好了。
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2011-11-24 22:26:37 | 显示全部楼层

    RE:MCF52233TCP客户端

    楼主自学能力强,希望多和论坛的网友交流交流,我在这里谢谢楼主了。
    该会员没有填写今日想说内容.
    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 02:34 , Processed in 0.097509 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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