Прикреплённый файл «2014-03-28-ubclient.py»
Загрузка 1 #!/usr/bin/env python
2 # coding: utf
3 '''
4 Наблюдаельный клиент для боулинга
5 '''
6
7 import sys, socket, pygame, select
8 CPORT=2015
9 SPORT=2014
10 MAXBUF=16384
11
12 def init_server(port):
13 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
14 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
15 sock.bind(('', port))
16 check = select.poll()
17 check.register(sock,select.POLLIN|select.POLLPRI)
18 return sock, check
19
20 def poll_command(poll,sock,key):
21 while True:
22 poll.poll(None)
23 cmd, addr = sock.recvfrom(MAXBUF)
24 if cmd.startswith(key):
25 return cmd,addr
26
27 pygame.init()
28 size = 800,600
29 screen = pygame.display.set_mode(size)
30 again = True
31 Sock, Check = init_server(CPORT)
32 pygame.time.set_timer(pygame.USEREVENT, 20)
33 pygame.time.set_timer(pygame.USEREVENT+1, 2000)
34 whl,(server,servport)=poll_command(Check,Sock,"BOWLING")
35 print whl, server
36 w,h,length=[int(c) for c in whl.split()[1:]]
37 image=""
38 while again:
39 conns = Check.poll(1)
40 for c in conns:
41 cmd, addr = Sock.recvfrom(MAXBUF)
42 if cmd.startswith("DATA"):
43 image = cmd[4:]
44 elif cmd.startswith("FLOW"):
45 image += cmd[4:]
46 if len(image)>=length:
47 screen.blit(pygame.image.frombuffer(image, (w,h), 'RGB'),(0,0))
48 image = ""
49 print cmd[:4], addr,
50 for event in [pygame.event.wait()]+pygame.event.get():
51 if event.type == pygame.QUIT:
52 again = False
53 # Смена игрового времени
54 elif event.type == pygame.USEREVENT+1:
55 Sock.sendto("GET",(server,SPORT))
56 pygame.display.flip()
57 pygame.quit()
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2014-04-04 13:15:14, 1.6 KB) [[attachment:2014-03-28-ubclient.py]]
- [получить | показать] (2014-04-04 13:15:30, 3.1 KB) [[attachment:2014-03-28-udp.py]]
- [получить | показать] (2014-04-04 13:14:39, 6.6 KB) [[attachment:2014-03-28-udpbowling.py]]
- [получить | показать] (2014-03-28 09:43:10, 0.3 KB) [[attachment:pybroad.py]]
- [получить | показать] (2014-03-28 09:43:02, 0.6 KB) [[attachment:pyudp.py]]
Вам нельзя прикреплять файлы к этой странице.