heyijx2 发表于 2015-2-28 13:29:36

EthernetClient连接成功,偶尔读取不到数据

小白求助啊,在使用Ethernet库的时发现了很多奇怪的问题,求大神帮忙。

1.EthernetClient连接成功,偶尔获取不到结果。
   在使用EthernetClient读取网页返回结果时,偶尔会遇到client.connect(server, 80)成功了,发送GET请求后,client.available()返回结果为0,但有时就正常,始终找不到原因在哪里。

2.client.connected()什么时候会返回false
   看API了解到client.connected()返回EthernetClient的连接状态,通常代码都会if (!ipClient.connected())判断没有连接时,执行client.stop()方法
   但是我发现,只有在出现问题1,即client.connect(server, 80)成功client.available()返回结果为0时才会执行if (!ipClient.connected())内容,如果client.available()返回结果正常,char c = ipClient.read()读取完所有数据后,确没有执行if (!ipClient.connected())内容。

3.client.stop()具体在做什么
   client.stop()方法API解释是断开连接,但是我发现及时没有执行,依然可以再次创建连接。那么如果不执行client.stop()会有什么影响吗?具体client.stop()在做哪些事情?client.stop()是不是必须的呢?


小白在此感谢各位大爷了!

darkorigin 发表于 2015-3-1 14:34:02

板卡质量问题吧
我以前也有过此类问题
一个杂牌2650MEGA一块小板28J60。有时候正常有时候就是不正常。多数时候是获取IP都失败。
换了一个Miroduino和他们的网卡就ok了

suoma 发表于 2015-3-2 14:21:15

我用的W5100网络扩展模块,正常。

suoma 发表于 2015-3-2 14:22:17

我用的W5100网络扩展模块,正常。

suoma 发表于 2015-3-2 14:26:02

client.stop()是必须的,跟TCP协议建立连接“三次握手”原理一样
页: [1]
查看完整版本: EthernetClient连接成功,偶尔读取不到数据