Advertisement
Guest User

Pygame network client

a guest
Jun 20th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. import pygame
  2. import pygame_network
  3.  
  4. pygame.init()
  5. # create connection
  6. pygame_network.connect('localhost', 10000)
  7. # connection overlay
  8. host = pygame_network.client.Host()
  9. # register new packet type
  10. # it will call pygame_network.packets.PacketManager.register()
  11. echo = pygame_network.register('echo', ('user', 'msg'))
  12. name = raw_input('name: ')
  13.  
  14. # version 1:
  15. while True:
  16.     for e in pygame.event.get()
  17.         if e.type == NETWORK and isinstance(e.packet, echo):
  18.         user, msg = e.packet
  19.         print '%s: %s' % (user, msg)
  20.     host.send(echo('me', raw_input())
  21.        
  22. # version 2:
  23. while True:
  24.     for e in pygame.event.get()
  25.         if e.type == NETWORK and e.packet_name == 'echo':
  26.         print '%s: %s' % (e.packet.user, e.packet.msg)
  27.     host.net_echo('me', raw_input())
  28.    
  29. # version 3:
  30. class EchoClient(pygame_network.client.Receiver):
  31.     def net_echo(self, packet_id, packet):
  32.         print '%s: %s' % (packet.user, packet.msg)
  33.        
  34.     def read_input(self):
  35.         self.host.net_echo('me', raw_input())
  36.        
  37. echo_client = EchoClient()
  38. while True:
  39.     echo_client.read_input()
  40.    
  41. # version 4: (no need to register new packet)
  42. class EchoClient(pygame_network.SyncObject):
  43.     sync_var = ('user', 'msg')
  44.     def __init__(self):
  45.         super(EchoClient, self).__init__()
  46.         self.msg = 'test'
  47.         self.user = 'me'
  48.    
  49.     def on_change(self):
  50.         print '%s: %s' % (self.user, self.msg)
  51.        
  52. echo_client = EchoClient()
  53. while True:
  54.     echo_client.msg = raw_input()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement