파이썬에서 내 게임을위한 UDP 서버/클라이언트를 만들려고 완전히 망가졌습니다. 나는 언어에 익숙하지 않고 네트워킹에 대한 경험이 제한적입니다. 지금 당장은 서버가 실행되지만 클라이언트에서 메시지를받지 못하는 것 같습니다.Python 게임 서버
서버 :
class GameServer:
class GameServerUDPHandler(socketserver.BaseRequestHandler):
def handle(self):
data = self.request[0].strip()
socket = self.request[1]
print("{} wrote:".format(self.client_address[0]))
print(data)
socket.sendto(data.upper(), self.client_address)
def __init__(self, port):
self.server = socketserver.UDPServer(("localhost", port), self.GameServerUDPHandler)
def start_server(self):
self.server.serve_forever(
클라이언트 : 프로그램의
import socket
import sys
class GameClient:
def __init__(self, port, host):
self.port = port
self.host = host
self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
def register(self):
self.socket.sendto(bytes("register\n", "utf-8"), (self.host, self.port))
self.numberID = int(self.socket.recv(1024))
print("Received: {}".format(self.numberID))
- 주요/시작
import gameserver
import gameclient
if __name__ == "__main__":
server = gameserver.GameServer(1300)
server.start_server()
client = gameclient.GameClient(1300, "localhost")
client.register()
참고 : 내가 잘못 여러 가지 가능성이 가장 높은 해요 및 위반 될 수 있습니다 언어의 몇 가지 모범 사례. 나는 정말로 단서가 없다.
방금 전 파이썬을 배웠다는 것을 알고 있습니다. 귀찮은 네트워킹을하고 싶다면 또 다른 프레임 워크를 배우는 것이 좋습니다. [Twisted] (http://twistedmatrix.com/)를 참조하십시오. – kirelagin
@kirelagin 감사. 나는 몇 시간 동안 Twisted를 아무 쓸모없이 설치하려했기 때문에 (특히 Mac에서 python2에만 설치되고 오류 때문에 python3에서는 작동하지 않을 것입니다.) 많은 시간을 보냈습니다. –
아, 맞습니다. 그들에게는 [파이썬 3.3에서 작동하게하는 계획]이 있습니다. (http://twistedmatrix.com/trac/wiki/Plan/Python3) 그러나 나는 그들의 진보가 어떨지 확신하지 못합니다 ... 당신의 최선의 선택은 전환이 걱정됩니다. 왜냐하면 Twisted없이 ntwork 프로그래밍이 고통이기 때문이다. – kirelagin