首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

急LWIP移植,客户端与服务器端无法建立连接!该如何解决

2013-01-26 
急!LWIP移植,客户端与服务器端无法建立连接!?正在搞一个小项目,板子是LM3S8962(周立功的),网上找到一个lwi

急!LWIP移植,客户端与服务器端无法建立连接!?
正在搞一个小项目,板子是LM3S8962(周立功的),网上找到一个lwip API 的例子,代码如下:

#include <includes.h>

/*********************************************************************************************************
  CONSTANTS 常量定义
*********************************************************************************************************/
const static uint8 TCP_TestData[]="This is LwIP TCP Client 在Luminary Cortex-M3上的测试!\r\n";

/*********************************************************************************************************
  VARIABLES 变量定义
*********************************************************************************************************/

/*********************************************************************************************************
  函数声明
*********************************************************************************************************/
void TCP_Client_Init();


//  延时
void  Delay(unsigned long  ulVal)
{
    while ( --ulVal  !=  0 );
}
/*********************************************************************************************************
** Function name:      main   
** Descriptions:       系统主函数入口
** input parameters:   无
** output parameters:  无      
** Returned value:      0 
** Created by:   
** Created Date:   2008.8.28
**--------------------------------------------------------------------
** Modified by:         
** Modified date:         
**--------------------------------------------------------------------
*********************************************************************************************************/
int main()
{
  targetInit();
  InitNic();
 
  while(1)
  {
    TCP_Client_Init();
    Delay(1000000UL);  
    Delay(1000000UL); 
    Delay(1000000UL); 
   }
}

/******* 这是一个回调函数,当TCP客户端请求的连接建立时被调用********/
err_t TcpCli_Connected(void *arg,struct tcp_pcb *pcb,err_t err)
{
   tcp_write(pcb,TCP_TestData,sizeof(TCP_TestData),0);      //发送数据
   
   tcp_close(pcb);
   
   return ERR_OK;
}

/*********************************************************************************************************
** Function name:           TCP_Client_Init   
** Descriptions:            TCP客户端的初始化,当需要建立客户端连接时调用
** input parameters:        无
** output parameters:       无      
** Returned value:          0 
** Created by:   
** Created Date:    2008.10.9


**--------------------------------------------------------------------
** Modified by:         
** Modified date:         
**--------------------------------------------------------------------
*********************************************************************************************************/
void TCP_Client_Init()
{
  struct tcp_pcb *Clipcb;
  struct ip_addr ipaddr;
  
  IP4_ADDR(&ipaddr,202,194,26,112);
  
  Clipcb = tcp_new();                       // 建立通信的TCP控制块(Clipcb) 
  
  tcp_bind(Clipcb,IP_ADDR_ANY,1024);       // 绑定本地IP地址和端口号 
  
  tcp_connect(Clipcb,&ipaddr,8080,TcpCli_Connected);
}


板子跟电脑用网线连接 电脑上的IP 是202.194.26.112 先运行的电脑上的服务器,再运行MCU客户端 不知道为什么 不能建立连接?跪求??? 
[解决办法]
UCOS-II下的并口通讯吗?酷。
能ping通不?
[解决办法]
板子和电脑相连,要用直连网线(网络芯片支持交叉网线的除外)。
先把板子运行,看能不能ping通,如果不能那就是移植没有做好,检查驱动有没有问题
[解决办法]
板子上的IP地址指定的是多少??
[解决办法]

引用:
原来是192.*.*.* 现在改成跟电脑一个网段了 就行了 。。。还想请教你 为什么?: tcp_bind(Clipcb,IP_ADDR_ANY,1024); 这个函数不是绑定任意IP 的吗?为什么还得通过IP_ADDR()来设置成跟电脑同样的IP网段呢? 引用:

板子上的IP地址指定的是多少??

IP_ADDR_ANY表示的是绑定本地机器上的任意IP,你的板子和电脑是通过网线直连,没有路由功能,地址不在同一网段的话,Ping操作时是无法找到目标主机的。

[解决办法]
引用:
不是网线的问题,现在能PING 通了 呵呵 是板子的IP 设置有问题。。。多谢了 还想请教您能不能自动获取IP地址?引用:

板子和电脑相连,要用直连网线(网络芯片支持交叉网线的除外)。
先把板子运行,看能不能ping通,如果不能那就是移植没有做好,检查驱动有没有问题


自动获取IP要用DHCP服务器和客户端,你连到路由器或在PC机上装个DHCP服务器。另外板子上要写DHCP客户端程序。
[解决办法]
如果不改板子的IP,改电脑的IP成不
[解决办法]
直接连电脑的话需要用反线,网络线分为正,反二种线。不过最近的电脑主板都能自适应正、反线了。不过为了保险期间可以先用个路由器建立网络。另外IP地址应该在同一个网段才行。

热点排行