forked from huyngo878/2D-Game
-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.py
66 lines (54 loc) · 1.69 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import socket
from _thread import*
import sys
##server address
server = "10.20.36.50"
port = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((server, port))
except socket.error as e:
str(e)
##looking for connections/opens up port and allow how many people to connect
s.listen(3)
print("Waiting for user connection")
##split the cord in two int
def read_pos(str):
str = str.split(",")
return int(str[0], int(str[1]))
##make the int into (##, ##)
def make_pos(tup):
return str(tup[0]) + "," + str(tup[1])
pos = [(0, 0), (0, 100)]
def threaded_client(conn, playerCount):
conn.send(str.encode(make_pos(pos[playerCount])))
reply = " "
while True:
##recieve data from player if getting error increase size
try:
data = read_pos(conn.recv(2048).decode())
pos[playerCount] = data
if not data:
print("Disconnected")
break
else:
if playerCount == 1:
reply = pos[0]
else:
reply = pos[1]
print("Recieved: ", data)
print("Sending: ", reply)
conn.sendall(str.encode(make_pos(reply)))
except:
break
print("Lost Connection")
conn.close()
playerCount = 0
## start_new_thread runs the function threaded client so it runs all the time multiple times
## exmpl is multiple people playing the game this allow multiple functions to run
while True:
conn, addr = s.accept()
##shows address of people who are connected
print("Connected to:", addr)
start_new_thread(threaded_client, (conn, playerCount))
playerCount += 1