[英]python socket send not working
我正在編寫一個簡單的套接字程序來接收一些數據並反轉內容。 當我傳遞相反的內容時,它不會被發送。
服務器
import socket
s = socket.socket()
host = socket.gethostname()
port = 1234
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
print('Got connection from', addr)
print('Received message == ',c.recv(50))
s = c.recv(50)[::-1]
c.send(s)
c.close()
客戶
import socket
from time import sleep
s = socket.socket()
host = socket.gethostname()
port = 1234
s.connect((host, port))
print "Sending data"
s.sendall("Hello!! How are you")
print(s.recv(1024))
問題是服務器中有兩行
您的服務器在print語句中調用recv()
。 這將清空緩沖區。 然后,再次調用recv()
,但是前一條語句已將其清空,因此將其阻塞。
您需要調用recv()
並將其存儲在s
。 然后用s
其他地方。
為您的服務器嘗試以下操作:
import socket
s = socket.socket()
host = socket.gethostname()
port = 1234
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
print('Got connection from', addr)
s = c.recv(50)
print('Received message == ',s)
c.send(s)
c.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.