Python 在线多人游戏开发教程 Day01#做一个可以移动的方块
Python 在线多人游戏开发教程 Day02#做一个server 和 network
Python 在线多人游戏开发教程 Day03#两个client直接可以相互移动方块
Python 在线多人游戏开发教程 Day04#区分自己和别的玩家
Python 在线多人游戏开发教程 Day05#石头剪刀布游戏
查看方法 打开cmd 输入 ipconfig
找到IPv4
就是自己的server
server.py
import socket
import os
from _thread import *
import sys
server = "" #需要查看本机IP
port = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((server, port))
except socket.error as e:
str(e)
s.listen(2) # 想要的数量
print("等待连接,服务启动")
def threaded_client(conn): #在后台运行
conn.send(str.encode("已连接"))
reply = ""
while True:
try:
data = conn.recv(2048)
reply = data.decode("utf-8") #解码
if not data:
print("未连接")
break
else:
print("接收到:", reply)
print("发送出:", reply)
conn.sendall(str.encode((reply)))
except:
break
while True:
conn, addr = s.accept() #接受来的任何连接
print("连接至:", addr)
start_new_thread(threaded_client, (conn,))
network.py
import socket
import struct
class Network:
def __init__(self):
self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server = ""
self.port = 5555
self.addr = (self.server, self.port)
self.id = self.connect()
self.pos = self.connect()
def getPos(self):
return self.pos
def connect(self):
try:
self.client.connect(self.addr)
return self.client.recv(2048).decode()
except:
pass
def send(self, data):
try:
self.client.send(str.encode(data))
return self.client.recv(2048).encode()
except socket.error as e:
print(e)
n = Network()
print(n.send("hello"))
print(n.send("working"))
轮流运行即可 先server 等待连接,然后运行network