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

2019-07-20 12:17发布

用扩展例程中带操作系统的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寄存器却正常呢?谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 13:53
帮顶
hnxyxiaomeng
2楼-- · 2019-07-20 17:38
正点原子 发表于 2017-8-25 01:25
帮顶

求助求助,帮自己顶,,,
赵士亮
3楼-- · 2019-07-20 21:01
 精彩回答 2  元偷偷看……

一周热门 更多>