January 31, 2023

Отправка строки через сокет (python)


import socket
from threading import *

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "192.168.1.3"
port = 8000
print (host)
print (port)
serversocket.bind((host, port))

class client(Thread):
    def __init__(self, socket, address):
        Thread.__init__(self)
        self.sock = socket
        self.addr = address
        self.start()

    def run(self):
        while 1:
            print('Client sent:', self.sock.recv(1024).decode())
            self.sock.send(b'Oi you sent something to me')

serversocket.listen(5)
print ('server started and listening')
while 1:
    clientsocket, address = serversocket.accept()
    client(clientsocket, address)

Это очень ОЧЕНЬ простая конструкция для того, как вы могли бы решить эту проблему. Прежде всего, вам нужно либо принять клиента (на стороне сервера) перед тем, как перейти в цикл while 1, потому что в каждом цикле вы принимаете нового клиента, либо вы делаете так, как я описал, вы перебрасываете клиента в отдельный поток, который вы обрабатываете самостоятельно с этого момента.