lwip 协议在cortexM3上的实现问题。

Guanglew 2012-09-12 10:56:30
想在周立功的8962上实现基于LWIP 的客户端,电脑是server , 电脑与板子通过网线连接,连接部分的代码如下:

void TCP_Client_Init(void)
{
struct tcp_pcb *Clipcb;
struct ip_addr ipaddr;
Clipcb = tcp_new();
runFlag = 1;//置标志位
IP4_ADDR(&ipaddr,202,194,26,112);
//tcp_close(Clipcb);
//IP4_ADDR(&ipaddr,IPAddress[0],IPAddress[1],IPAddress[2],IPAddress[3]);
//tcp_bind(Clipcb,IP_ADDR_ANY,6003);
tcp_bind(Clipcb,(struct ip_addr *)IPAddress,6003);

tcp_connect(Clipcb,&ipaddr,1038,TcpCli_Connected);
}

板子跟主机的IP在同一网段,单步调试的时候IP 端口都正常,但是程序运行到tcp_connect()函数内的LWIP_ERR0R()函数就返回,看了看API,返回的错误值是ERR_ISCONN(already connected) ,主机通过抓包工具看过,没有板子发来的包。请问这个问题怎么解决啊?还有,该程序上还有一个LED工作提示的中断部分,我现在用的是keil ,这个程序在IAR上运行的时候没有问题的,我把程序移植到KEIL中之后,LED工作部分正常,但就是到tcp_connect() 处返回ERROR, 是不是跟我移植有关系啊?那位大侠帮帮忙啊?
...全文
118 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Guanglew 2012-09-14
  • 打赏
  • 举报
回复
太感谢了,我把Bind 去掉了 ,今天终于弄通了, 我以前只是改别人的代码,从来不自己思考为什么,遇到问题就去网上搜,现在感觉学的很不扎实,只知其一不知其二 ,学东西还是得一步一个脚印。谢谢你了。[Quote=引用 2 楼 的回复:]

你这个流程不对,你是要发送数据么,client是:设置服务器(PC机)地址,创建套接字(socket),连接(conect),写buffer,就这几步就可以发出去了。bind是绑定地址端口,写server的时候,用bind把自己的板的地址绑定到server上。server:创建socket,设置服务器地址(本机地址),bind绑定地址,监听,接收。读buffer,就可以接收到client发送的内……
[/Quote]
y646635088 2012-09-13
  • 打赏
  • 举报
回复
你这个流程不对,你是要发送数据么,client是:设置服务器(PC机)地址,创建套接字(socket),连接(conect),写buffer,就这几步就可以发出去了。bind是绑定地址端口,写server的时候,用bind把自己的板的地址绑定到server上。server:创建socket,设置服务器地址(本机地址),bind绑定地址,监听,接收。读buffer,就可以接收到client发送的内容了
Guanglew 2012-09-13
  • 打赏
  • 举报
回复
为什么没人理呢?

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧