OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3772|回复: 3

上位机的服务器停止监听后,TCP Client没显示连接失败

[复制链接]

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2017-7-2
在线时间
12 小时
发表于 2017-8-24 10:05:43 | 显示全部楼层 |阅读模式
1金钱
用扩展例程中带操作系统的TCP Client程序,上位机用网络助手开启Server侦听。正常通信没问题,但是停止网络侦听后,有时可从BSR寄存器中读到网络断开,即执行下面的代码后跳出内while循环,重新建立连接。
cursta = ( ETH_ReadPHYRegister( LAN8720_PHY_ADDRESS, PHY_BSR ) & 4 );

                if( cursta != 4 ) //连接已断开
                {
                    tcp_client_flag &= ~LWIP_SEND_DATA;
                    break;
                }  


但有时服务器断开后,从寄存器读出的信息是网络连接正常,但后面数据发送是失败的,即下面出错。
err = netconn_write( tcp_clientconn , &TCPTxBuff[tx_mux], TX_FRAME_LEN, NETCONN_COPY ); //发送tcp_server_sentbuf中的数据


我的问题是:
服务器主动断开后,BSR寄存器能否反应网络已断开呢?如果能,为什么有时BSR寄存器却正常呢?谢谢。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-8-25 01:25:27 | 显示全部楼层
回复

使用道具 举报

6

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2017-7-2
在线时间
12 小时
 楼主| 发表于 2017-8-27 20:49:30 | 显示全部楼层

求助求助,帮自己顶,,,
回复

使用道具 举报

0

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
221
金钱
221
注册时间
2017-5-26
在线时间
76 小时
发表于 2017-8-27 22:00:50 来自手机 | 显示全部楼层
顶,,,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-18 05:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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