Я понимаю, что причиной его отправки является то, что я устанавливаю recv на 1024 и могу изменить, насколько это допустимо, изменив это, однако я хочу только один Hello Мир отправлен. Я попытался найти вопрос, и ничего действительно полезного не появилось. Заранее спасибо!!Socket recv in Python 3 повторяющийся ввод снова и снова
Сервер:
#!/usr/bin/python
import socket
import sys
class Server:
def __init__(self, sock=None):
if sock is None:
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("socket created")
def bind(self, HOST, PORT):
try:
self.sock.bind((HOST, PORT))
except socket.error as msg:
print("Bind failed. Error Code : " +
str(msg[0]) + "Message " + msg[1])
sys.exit()
print("Socket bind complete")
def main_loop(self):
self.sock.listen(10)
print("Socket now listening")
while 1:
conn, addr = self.sock.accept()
print("Connected with " + addr[0] + ":" + str(addr[1]))
data = conn.recv(1024)
print(data)
self.sock.close()
def main(self):
HOST = ''
PORT = 8888
self.bind(HOST, PORT)
self.main_loop()
def main():
server = Server()
server.main()
if __name__ == "__main__":
main()
Client Выход
#!/usr/bin/python
import socket
import sys
class Client:
def __init__(self, sock=None):
if sock is None:
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("socket created")
def connect(self, HOST, PORT):
try:
self.sock.connect((HOST, PORT))
except socket.error as msg:
print("Connect failed. Error Code : " +
str(msg[0]) + "Message " + msg[1])
sys.exit()
print("Socket connect complete")
def main_loop(self):
while 1:
self.sock.sendall(b'Hello world')
self.sock.close()
def main(self):
HOST = ''
PORT = 8888
self.connect(HOST, PORT)
self.main_loop()
def main():
client = Client()
client.main()
if __name__ == "__main__":
main()
Сервер:
socket created
Socket bind complete
Socket now listening
Connected with 127.0.0.1:45676
b'Hello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello worldHello world'
Client Выход:
Исправлено, спасибо большое! Просто глупая ошибка. Спасибо, что посмотрели на меня! – Kenton