打印

STM32以太网连接问题

[复制链接]
1651|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的平台是STM32F107,基于ucos系统,lwip协议栈为1.3.0,下载下位机为server模式,上位机能够拼通下位机,但是上位机网络测试软件发送建立连接时,不能连接,跟踪下位机netconn_accept没有返回,不知什么原因?我移植的代码参考官方的软件:STM32_F107_lwIP_uCOS软件包。
部分代码:
   if (bind(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1)
   {
       mem_free(recv_data);
       return;
   }
   /* 在socket上进行监听 */
   if (listen(sock, 5) == -1)
   {
       mem_free(recv_data);
       return;
   }
   while(stop != TRUE)
   {
       sin_size = sizeof(struct sockaddr_in);
       connected = accept(sock, (struct sockaddr *)&client_addr, &sin_size);
        /* 客户端连接的处理 */
       while (1)
       {
            // send(connected, send_data, strlen(send_data), 0);
             bytes_received = recv(connected,recv_data,ECV_BUFFER_SIZE,0);
                ----------------
      }
  }
当上位机发送连接请求时,accept()没有返回连接,因而无法处理数据。
沙发
zhouzhihongcs|  楼主 | 2012-1-4 16:10 | 只看该作者
补充测试:
使用抓帧工具:
stm32平台为server ipaddr:192.168.1.24,pc机为client  ipaddr:192.168.1.22
上位机发送链接时,tcp数据帧交互见附件,相互握手了2次(图中执行了两次连接指令)就结束了,不知什么原因引起。

tcp连接帧.png (242.08 KB )

tcp连接帧.png

使用特权

评论回复
板凳
zhouzhihongcs|  楼主 | 2012-1-4 16:28 | 只看该作者
启动连接后,server与client因实现三次握手才能建立连接,我的程序只实现了两次,请问这一般是什么原因引起上述现象?

使用特权

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

本版积分规则

0

主题

14

帖子

0

粉丝