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)
再次運行,一切正常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM