我正在编写一个简单的套接字程序来接收一些数据并反转内容。 当我传递反转的内容时,它没有被发送..
服务器
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))
答案 0 :(得分:0)
问题是服务器中的两行
您的服务器在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()