python socket发送不起作用

时间:2015-08-19 20:19:45

标签: python sockets

我正在编写一个简单的套接字程序来接收一些数据并反转内容。 当我传递反转的内容时,它没有被发送..

服务器

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))

1 个答案:

答案 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()