Guest User

Untitled

a guest
Nov 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. #!/usr/bin/env python
  2. """An externally-accessible toy server"""
  3.  
  4. import socket
  5.  
  6. def get_local_address_hack():
  7. s = socket.socket()
  8. s.connect(('google.com', 80))
  9. address, port = s.getsockname()
  10. return address
  11.  
  12. def boring_response(client_socket):
  13. print 'formulating response...'
  14. s = client_socket.recv(1000)
  15. open('output.txt', 'a').write(s)
  16. # I'm confused about what makes a valid http response
  17. test_response = "HTTP/1.0 200 OK\r\n\r\n<html><body>This is a response!</body></html>"
  18. client_socket.send(test_response)
  19. client_socket.close()
  20.  
  21. class Server(object):
  22. def __init__(self, port=8000):
  23. self.address = get_local_address_hack()
  24. self.port = port
  25. self.socket = socket.socket()
  26. self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  27. self.socket.bind((self.address, self.port))
  28. print 'ip to hit:'
  29. print self.address,':', self.port
  30. self.socket.listen(1)
  31.  
  32. def blocking_listen(self, response_function):
  33. (client_socket, client_address) = self.socket.accept()
  34. print 'client connected at ', client_address, 'connected'
  35. response_function(client_socket)
  36.  
  37. if __name__ == '__main__':
  38. #print web_scrape('localhost')
  39. #raw_input('wait while setup server again')
  40. #s = '10.242.11.247'
  41. #print web_scrape(s)
  42. s = Server(8000)
  43. while True:
  44. s.blocking_listen(boring_response)
Add Comment
Please, Sign In to add comment