1.问题描述
使用树莓派4B实现与PC端的Socket通信。树莓派作为服务器端,PC机作为客户端。在树莓派上运行服务器代码,相关端口打开,但PC端总连接不上。

2.解决方法
树莓派服务器端代码使用python实现,参考了俩本书籍《树莓派Python编程指南》和《树莓派Python编程入门与实战》。

在这里插入图片描述
按照上述代码运行总是连接不上,将comms_socket.bind((‘localhost’,50000))中的localhost改成客户端想要连接的地址 如“192.168.1.3”就可以了。做服务器端的话写成本机IP就可以。

3.原因
Localhost是本地服务器的地址,只能在本机上访问。所以当你使用Localhost作为地址的时候,可以在本机上运行俩个Socket程序,一个作为客户端,一个作为服务器端,程序是可以正常运行的。
而本机IP既能够通过本机访问有能够通过外部访问,所以在俩台不同的主机上运行的时候,需要将localhost改成本机IP。

import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net. Socket ; import android.os.Bundle; import andro 在C#中处理 Socket 失败 通常涉及几个关键步骤,包括异常处理、重试逻辑以及可能的连 状态检查。通过结合上述建议,你可以更加健壮地处理C#中 Socket 失败 情况,并提供更好的用户体验和应用程序稳定性。// 处理空引用异常(例如,当传递了null的IPEndPoint时)// 根据异常类型,你可以决定是重试连 、记录错误还是执行其他操作。// Socket 未连 ,可能需要重新连 或处理断开连 的情况。// Socket 仍然连 ,可以发送或 收数据。// 尝试建立 Socket 。 在微调chatglm2-6b模型的时候,发现 服务器 报错,大概意思是没能连 上本地的网络,查了很多资料都没有结果,下面这个 解决 方法 对我有用。 解决 方案:手动添加本地网络。 Socket 错误指的是在使用 Socket 进行网络通信时,由于各种原因而导致的错误。 Socket 是一种网络编程 口,它允许应用程序通过 TCP/IP 协议或 UDP 协议进行网络通信。在进行网络通信时,可能会出现各种各样的错误,例如连 超时、连 被重置、无法连 等等,这些错误都被称为 Socket 错误。当出现 Socket 错误时,通常需要根据具体的错误信息进行调试和处理,例如修改网络配置、增加连 超时时间、检查网络连 等等。正确地处理 Socket 错误可以有效提高网络通信的稳定性和可靠性。 远程主机不可达:连 失败 最常见的原因之一是远程主机不可达。如果连 失败 并且确定网络配置正确,那么可能需要检查远程主机是否正常工作。总结:在 socket 编程中,connect连 失败 可能是由于远程主机不可达、网络防火墙设置或IP地址、 口配置错误等原因引起的。IP地址或 口错误:在连 远程主机时,需要指定正确的目标IP地址和 口号。"的消息,否则将输出相应的错误信息,帮助确定连 失败 的原因。网络防火墙:网络中的防火墙可能会阻止连 的建立。因此,在连 远程主机之前,应该确保防火墙允许出站连 请求。 我们在遇到网络不通的情况,大家都知道去 ping 一下,看一下网络状况。那你知道「ping」命令后背的逻辑是什么吗?知道它是如何实现的吗? 一、「ping」命令的作用和原理? 简单来说,「ping」是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连 。ping是定位网络通不通的一个重要手段。 ping 命令是基于 ICMP 协议来工作... 下面列出了几个在客户与服务进程连 中常见的几个 Socket 错误,并分析了原因。后续再逐渐补充吧。 ECONNABORTED 该错误被描述为“software caused connection abort”,即“软件引起的连 中止”。原因在于当服务和客户进程在完成用于 TCP 连 的“三次握手”后,客户 TCP 却发送了一个 RST (复位)分节,在服务进程看来,就在该连 已由 TCP 排队,... 报错:C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\cuda\Indexing.cu:699: block: [9,0,0]