По сути, я пытаюсь написать код, который позволит мне сделать многопользовательскую игру. Я слежу за технологом с видео Тима, но в моем серверном скрипте While l oop никогда не проходит строку
connection, address=s.accept()
, кстати, переменная s:
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
вот полный код, и любые предложения будут очень полезны
import socket
from _thread import *
server='192.168.1.14'
port=5555
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((server, port))
except socket.error as e:
print(str(e))
s.listen(2)
print('waiting for a connection, server is open')
def ThreadCli(conn):
print('hey')
conn.send(str.encode('Connected'))
reply=''
while True:
try:
#if there are errors, increase the bytes(2048)
data=conn.recv(2048)
reply=data.decode('utf-8')
if not data:
print('Disconnected')
break
else:
print('Received:', reply)
print('Sending:', reply)
conn.sendalll(str.encode(reply))
except:
break
print('Lost connection')
conn.close()
while True:
print('test to see if it enters the while loop')
conn, addr=s.accept()
print('test to see if the while loop passes the line above') #never gets printed
print('Connected to:',addr)
start_new_thread(ThreadCli,(conn))
В дополнение к этому, всякий раз, когда я пытаюсь запустить сетевой код для подключения к нему, код просто автоматически закрывается. Вот этот код на случай, если он как-то связан или в нем есть отдельная проблема:
#network
import socket
class Network:
def __intit__(self):
print('hi')
self.client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server='192.168.1.14'
self.port=5555
self.addr=(self.server, self.port)
self.id=self.connect()
print(self.id)
def connect(self):
try:
self.client.connect(self.addr)
return self.client.recv(2048).decode()
except:
print('Could not connect')
n=Network()