import pygame
import pygame_network
pygame.init()
# create connection
pygame_network.connect('localhost', 10000)
# connection overlay
host = pygame_network.client.Host()
# register new packet type
# it will call pygame_network.packets.PacketManager.register()
echo = pygame_network.register('echo', ('user', 'msg'))
name = raw_input('name: ')
# version 1:
while True:
for e in pygame.event.get()
if e.type == NETWORK and isinstance(e.packet, echo):
user, msg = e.packet
print '%s: %s' % (user, msg)
host.send(echo('me', raw_input())
# version 2:
while True:
for e in pygame.event.get()
if e.type == NETWORK and e.packet_name == 'echo':
print '%s: %s' % (e.packet.user, e.packet.msg)
host.net_echo('me', raw_input())
# version 3:
class EchoClient(pygame_network.client.Receiver):
def net_echo(self, packet_id, packet):
print '%s: %s' % (packet.user, packet.msg)
def read_input(self):
self.host.net_echo('me', raw_input())
echo_client = EchoClient()
while True:
echo_client.read_input()
# version 4: (no need to register new packet)
class EchoClient(pygame_network.SyncObject):
sync_var = ('user', 'msg')
def __init__(self):
super(EchoClient, self).__init__()
self.msg = 'test'
self.user = 'me'
def on_change(self):
print '%s: %s' % (self.user, self.msg)
echo_client = EchoClient()
while True:
echo_client.msg = raw_input()