tcpserver.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # This example code is in the Public Domain (or CC0 licensed, at your option.)
  2. # Unless required by applicable law or agreed to in writing, this
  3. # software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
  4. # CONDITIONS OF ANY KIND, either express or implied.
  5. # -*- coding: utf-8 -*-
  6. import socket
  7. import sys
  8. # ----------- Config ----------
  9. IP_VERSION = 'IPv4'
  10. PORT = 3333
  11. # -------------------------------
  12. if IP_VERSION == 'IPv4':
  13. family_addr = socket.AF_INET
  14. elif IP_VERSION == 'IPv6':
  15. family_addr = socket.AF_INET6
  16. else:
  17. print('IP_VERSION must be IPv4 or IPv6')
  18. sys.exit(1)
  19. try:
  20. sock = socket.socket(family_addr, socket.SOCK_STREAM)
  21. except socket.error as msg:
  22. print('Error: ' + str(msg[0]) + ': ' + msg[1])
  23. sys.exit(1)
  24. print('Socket created')
  25. try:
  26. sock.bind(('', PORT))
  27. print('Socket binded')
  28. sock.listen(1)
  29. print('Socket listening')
  30. conn, addr = sock.accept()
  31. print('Connected by', addr)
  32. except socket.error as msg:
  33. print('Error: ' + str(msg[0]) + ': ' + msg[1])
  34. sock.close()
  35. sys.exit(1)
  36. while True:
  37. data = conn.recv(128)
  38. if not data:
  39. break
  40. data = data.decode()
  41. print('Received data: ' + data)
  42. reply = 'OK: ' + data
  43. conn.send(reply.encode())
  44. conn.close()