私はPython内のサーバーとクライアントの通信上の例を追ってきましたが、サーバーに新しいメッセージを常に聞き取り、印刷してクライアントに送り返して印刷させることはできません同じように。私が間違っていることは何ですか? Serverコード:Pythonサーバーとクライアントは通信しません
#Imports
import socket
#Define socket address
TCP_IP = '0.0.0.0' # consider all incoming IPs
TCP_PORT = 5000 # port# communicating with the client
BUFFER_SIZE = 1024 # buffer size for receiving data
#Create socket IPv4 TCP
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Socket created"
s.bind((TCP_IP, TCP_PORT))
s.listen(20)
print "Waiting for a Cli_socket..."
#Wait for Cli_sockect
while True:
while True:
# accept Cli_sockection
Cli_sock, addr = s.accept()
print "Cli_sockected with " + addr[0] + " " + str(addr[1])
# get message from client
message = Cli_sock.recv(BUFFER_SIZE)
print message
# check that there is a message
if not message:
break
# send message to client
Cli_sock.send(message)
print "Sent message"
s.close()
print "Socket Closed"
クライアントコード:
# a simple client socket
import socket
# define socket address
TCP_IP = '127.0.0.1' # ip of connecting server
TCP_PORT = 5000 # port communicating server
BUFFER_SIZE = 1024 # buffer size receiving data
# create socket IPv4 & TCP protocol
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "Socket created successfully."
# connect to server
s.connect((TCP_IP, TCP_PORT))
print "Established connection with the server."
data = s.recv(BUFFER_SIZE)
while True:
print ("Message to send:")
message = raw_input()
s.send(message)
print "Message sent to server: %s." % message
print ("Message Recv:%s\n" % data)
表示される動作は何ですか?どのように機能しないのですか?共有するスタックトレースやその他の情報は、より具体的ですか? – thaavik
クライアントはデータを受信して28行目で立ち往生し、printステートメントには到達しません。エラーは発生しません。クライアントのwhileループでs.send(メッセージ)の後にdata = s.recvを置くと、ループはメッセージを送信しますが、data = s.recv(Buffer_size)に再び到達した後に停止します – Alex