0
私はLANネットワークを介してPythonでTCP経由で基本メッセージを送信しようとしています。 TCPClient.py:長いメッセージのあるPython TCP socket.error
import socket, sys, time
TCP_IP = "10.0.0.10"
TCP_PORT = 5005
BUFFER_SIZE = 1024
running = True
while running == True:
try:
MESSAGE = raw_input("Message: ")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Connecting...")
s.connect((TCP_IP,TCP_PORT))
print("Connected!")
s.send(MESSAGE)
data = s.recv(BUFFER_SIZE)
s.close()
print("Sent data: %s" % MESSAGE)
print("Recieved data: %s" % data)
running = False
time.sleep(20)
except socket.error as e:
print(e)
time.sleep(1)
except:
print(sys.exc_info()[0])
time.sleep(1)
そしてTCPServer.py:それは主に( "世界ハロー" のような)小さなメッセージのために動作しますが、私はもっと〜10文字を超えるメッセージを送信するとき、それは分割
import socket, time, sys
TCP_IP = "10.0.0.10"
TCP_PORT = 5005
BUFFER_SIZE = 20
while True:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP,TCP_PORT))
print("Listening for connection...")
s.listen(1)
conn,addr = s.accept()
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
print("Recieved data: %s" % data)
conn.send(data.upper())
print("Sent data: %s" % data.upper())
conn.close()
except TypeError as e:
print(e)
except ValueError as e:
print(e)
except socket.error as e:
print(e)
except:
print(sys.exc_info()[0])
time.sleep(1)
それは2つのセクションに分かれていて、時には半分も送信しません。例えば:高度で任意の助け
ありがとう!とても有難い。ここで
TCPは_streamプロトコルです。ストリームが特定のメッセージチャンクを提供するとは思わない。 –