January 27, 2023

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


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

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)