Чтобы разрешить передачу данных из клиентского файла в серверный, после запуска на сервере мне также нужно запустить его. на КДМ; после этого я смогу распечатать данные клиента в файле моего сервера.
Проблема в том, что после запуска на cdm я получаю эту ошибку:
Код: Выделить всё
Traceback (most recent call last):
File "C:\Users\user\Desktop\prova clientserver\provaserver.py", line 13, in
server.bind(ADDR)
OSError: [WinError 10048] Normally only one use of each socket address (protocol/network address/port) is allowed.
КОД СЕРВЕРА
Код: Выделить всё
import socket
import threading
HEADER = 64
PORT = 5050
SERVER = socket.gethostbyname(socket.gethostname())
ADDR = (SERVER, PORT)
FORMAT = 'utf-8'
DISCONNECTED_MESSAGE ="!DISCONNECTED"
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)
def handle_client(conn, addr): print(f"[NEW CONNECTION] {addr} connected.")
connected = True
while connected:
msg_lenght = conn.recv(HEADER).decode(FORMAT)
if msg_lenght:
msg_lenght = int(msg_lenght)
msg = conn.recv(msg_lenght).decode(FORMAT)
if msg == DISCONNECTED_MESSAGE:
connected = False
print(f"[{addr}] {msg}")
conn.close()
def start():
server.listen()
print(f"[LISTENING] Server is listening on {SERVER}")
while True:
conn, addr = server.accept()
thread = threading.Thread(target=handle_client, args=(conn, addr))
thread.start()
print(f"[ACTIVE CONNECTIONS] {threading.active_count() - 1}")
print("[STARTING] Server in starting...") start()
Код: Выделить всё
import socket
HEADER = 64
PORT = 5050
SERVER = socket.gethostbyname(socket.gethostname())
FORMAT = "utf-8"
DISCONNECTED_MESSAGE ="!DISCONNECTED"
ADDR = (SERVER, PORT)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(ADDR)
def send(msg):
message = msg.encode(FORMAT)
msg_lenght = len(msg)
send_lenght = str(msg_lenght).encode(FORMAT)
send_lenght += b" " * (HEADER - len(send_lenght))
client.send(send_lenght)
client.send(message)
send("HELLO WORLD")
Подробнее здесь: https://stackoverflow.com/questions/791 ... nly-one-us