簡體   English   中英

python套接字發送不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM