• socket 错误之:OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。


    server.py

    #!/usr/bin/env python
    #coding:utf-8
    #Created by Andy @ 2017/9/14
    
    
    import socket
    
    BUFSIZE = 1024
    ip_port = ('127.0.0.1', 9000)
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM )
    s.bind(ip_port)
    s.listen(5)
    
    client, client_addr = s.accept()
    print(client, client_addr)
    
    msg = s.recv(BUFSIZE)
    
    print(msg, type(msg))
    
    client.send(msg.upper())
    
    client.close()
    s.close()
    

    client.py

    #!/usr/bin/env python
    #coding:utf-8
    #Created by Andy @ 2017/9/14
    
    
    import socket
    
    BUFSIZE = 1024
    ip_port = ('127.0.0.1', 9000)
    
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    client.connect(ip_port)
    client.send('Andy is here'.encode('utf-8'))
    feedback = client.recv(BUFSIZE)
    print(feedback.decode('utf-8'))
    client.close()
    

     运行后:

    可以看到问题出在s.recv(BUFSIZE)

    原因就在于这里的s是服务端的套接字,而这样导致的结果是:s没有与client连接,只需要改成:msg = client.recv(BUFSIZE)
    再次运行,一切正常。

  • 相关阅读:
    Android状态栏白底黑字,只需两步轻松搞定
    MyBatis注解
    MyBatis延迟加载和缓存
    MyBatis关联查询
    mybatis智能标签1
    Mybatis智能标签
    增删改查
    初始MyBatis
    第7章:Servlet 基础
    第3章 JSP数据交互(二)
  • 原文地址:https://www.cnblogs.com/Andy963/p/7521763.html
Copyright © 2020-2023  润新知