zoukankan      html  css  js  c++  java
  • socket error汇总

    1. socket.error: [Errno 98] Address already in use

    socket 绑定的地址正在使用,常见于非友好关闭套接字。

    解决办法:先关闭占用该地址的进程,假设端口号为10000,

      $ lsof -i:10000  

    然后设置allow_reuse_address = True。

    2. socket.error: [Errno 104] Connection reset by peer

    如果调用 read() 从 TCP 连接上接收数据并返回 -1,且 errno 为 104(Connection reset by peer),这通常表示对端程序没有关闭 socket 就直接退出了 (例如 core dump )。

    原因:对端程序没有显式调用 close() 来关闭一个 TCP 连接,那么在进程退出前,操作系统会释放相关的资源,包括关闭打开的文件描述符;但是这种情况下的关闭,只是发送一个 RESET 包就立刻结束,因此 read() 返回 -1 且 errno 为 104。而正常调用 close() 来关闭一个 socket, 会导致关闭连接的两次握手过程,这需要一点网络交互时间;这种情况下, read() 返回的是 0。

    因此,在开发过程中,遇到这种现象,可以判断对端程序是不是除了问题。

  • 相关阅读:
    this.props.children 踩坑
    3.webpack配置
    2.项目初始化配置
    1项目库的建立
    Idea-代码背景设置
    SpringBoot+nacos-环境切换-配置文件
    Docker-镜像地址无法访问
    端口-映射、开放、定义
    Linux-命令
    Nginx-命令
  • 原文地址:https://www.cnblogs.com/Amagasaki/p/3598030.html
Copyright © 2011-2022 走看看