Advertisement
LovelessIsma

server_cagada

Dec 6th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.76 KB | None | 0 0
  1. https://github.com/jeremyfix/udp_video_streaming/tree/master/udp_socket
  2. #!/usr/bin/env python
  3. # coding: utf-8
  4.  
  5. import socket
  6. import cv2
  7. import sys
  8. import argparse
  9.  
  10. import video_grabber
  11.  
  12. parser = argparse.ArgumentParser()
  13. parser.add_argument('--port', type=int, help='The port on which the server is listening', required=True)
  14. parser.add_argument('--jpeg_quality', type=int, help='The JPEG quality for compressing the reply', default=50)
  15. parser.add_argument('--encoder', type=str, choices=['cv2','turbo'], help='Which library to use to encode/decode in JPEG the images', default='cv2')
  16.  
  17. args = parser.parse_args()
  18.  
  19. jpeg_quality = args.jpeg_quality
  20. host         = ''
  21. port         = args.port
  22. encoder      = args.encoder
  23.  
  24. # The grabber of the webcam
  25. grabber = video_grabber.VideoGrabber(jpeg_quality, encoder)
  26. grabber.start()
  27. get_message = lambda: grabber.get_buffer()
  28.  
  29. keep_running = True
  30.  
  31. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  32.  
  33. # Bind the socket to the port
  34. server_address = (host, port)
  35.  
  36. print('starting up on %s port %s\n' % server_address)
  37.  
  38. sock.bind(server_address)
  39.  
  40. while(keep_running):
  41.     data, address = sock.recvfrom(4)
  42.     data = data.decode('utf-8')
  43.     if(data == "get"):
  44.         buffer = get_message()
  45.         if buffer is None:
  46.             continue
  47.         if len(buffer) > 65507:
  48.             print("The message is too large to be sent within a single UDP datagram. We do not handle splitting the message in multiple datagrams")
  49.             sock.sendto("FAIL".encode('utf-8'),address)
  50.             continue
  51.         # We send back the buffer to the client
  52.         sock.sendto(buffer, address)
  53.     elif(data == "quit"):
  54.         grabber.stop()
  55.         keep_running = False
  56.  
  57. print("Quitting..")
  58. grabber.join()
  59. sock.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement