私はperlTCPサーバー/pythonTCPクライアントを書き込もうとしています、そして私は今そのようなコードを持っています:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ("127.0.0.1", 9000)
sock.connect(server_address)
try:
message = unicode('Test')
sock.sendall(message)
data = sock.recv(1024)
print data
finally:
sock.close()
そして、私のTCPサーバー(perlで書かれている)がの後sendall(message)
にではなく、の後にメッセージを受け取っていることに気づきましたclose()
。サーバーはエコーサーバーのように機能し、メッセージを受信した後にクライアントにデータを送信します。そして、それはデッドロックを引き起こし、サーバーは決してメッセージを受け取らず、クライアントは決して応答を受け取りません。何が問題になる可能性がありますか?close()
そのメッセージがサーバーに届く間に何が起こりますか?