![](https://img-blog.csdnimg.cn/20210419131917863.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
TCP Client
有关TCP Client的技术问题。
WIZnet 中国社区官方博客
WIZnet 官方技术交流社区
展开
-
W5500连接成功后,为什么一发送数据就会断开连接?
解决方案:有很多种可能性:与W5500建立连接的客户端或服务器检测到发送的数据为非法的就自行断开,建议先用网络调试助手确认发送数据是否为非法的。W5500供电电源未达到标准值,建议先检测供电电源是否正常。...原创 2021-06-25 16:02:19 · 2382 阅读 · 0 评论 -
W5500EVB作为TCP客户端
硬件资料硬件设计工程下载参考代码实现步骤当W5500初始化完成后,程序进入主循环,可以调用getSn_SR (Socket号)来读取该Socket的状态值。这里通信协议这里我们将配置成TCP,即Sn_MR_TCP。当程序成功执行socket(…)函数后,socket0将处于SOCK_INIT状态。 此时,作为TCP客户端,就要调用connect(…)函数连接远程服务器。待TCP连接的3次握手完成后,socket0的状态将会转变为SOCK_ESTABLISHED状态。在进入SOCK_ESTABLIS原创 2021-05-10 16:42:26 · 788 阅读 · 1 评论 -
同一块网络芯片的多个SOCKET,可以同时设置成客户端去连接电脑服务器的一个端口吗,怎么实现?
解决方案:当然可以,WIZnet每款网络协议芯片都可以支持多个SOCKET同时工作,只需将芯片内每个SOCKET设置成不同端口号,分别设置成客户端去连接服务器就行, 前提是服务器的上位机软件需支持多任务,否则不能成功。...原创 2021-04-19 14:14:55 · 389 阅读 · 0 评论 -
在TCP模式下通过路由器连接,对方拔掉网线再插上后不能建立通讯怎么办?
解决方案:WIZnet芯片可以在发送过数据后,空闲既未发送也未接收达的情况,到一定时间(3秒,5秒,10秒自定义)后,发送SEND_KEEP命令,如对方正常就保持连接,如果对方在一定时间内未回应,则发出超时中断,自动关闭SOCKET端口,就可以自动重新连接,这样就能连接上了。但此命令只能用于TCP模式,如果是UDP模式下如果也想查看对方状态就需要从程序想办法了。...原创 2021-04-19 14:07:37 · 428 阅读 · 0 评论 -
WIZnet网络芯片TCP模式下的客户端与服务器有什么异同?
解决方案:客户端起启动连接(CONNECT)的作用,主动连接必须要知道连接目标,因此要正确设置SOCKET的目的(服务器)IP和目的(服务器)端口号。服务器则是侦听的作用(LISTEN),等待连接不需要设置目的IP 和目的端口号,客户端来连接时,服务器自然知道客户端的IP地址与端口号。...原创 2021-04-19 13:58:55 · 447 阅读 · 0 评论 -
W5500在TCP_Client模式下,断电重启之后无法立即连接到服务器。
问题原因:这是由于客户端没有主动发送断开请求,造成服务器并不知道Socket已发生异常断开; 重新上电之后,芯片以相同的IP和端口连接服务器,而服务器还认为此Socket链接存在,所以拒绝芯片的立即连接。解决方案:在芯片使用KEEP_ALIVE机制,一段时间内发送呼吸包,如果芯片没有给服务器回复,服务器则判断链接已断开,并释放Socket资源,这时就可以成功连接。如果对客户端的本地端口没有要求的话,也可以在初始化Socket的部分让端口自动+1处理。两种方式根据具体应用分析采用。(注: 有的场景不能采转载 2021-04-14 11:36:07 · 1321 阅读 · 1 评论 -
芯片处于TCP_Client模式下,无法连接到服务器。
解决方案:遇到这个问题,有一个排查的步骤:1.检查IP层是否可以PING通。2.检查服务器的目标端口是否处于侦听状态,否则会收到RST数据包。3.WIZnet芯片在连接服务器时,首先会发送ARP请求,请确认ARP得 到正确回复。4.检查客户端-服务器间的3步握手是否完成。5.尝试更换本地端口。...原创 2021-04-19 11:25:46 · 573 阅读 · 0 评论