Guest User

Untitled

a guest
Jul 15th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. 90 # Create our socket stream to listen on.
  2. 91 serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  3. 92
  4. 93 #serv.settimeout(5)
  5. 94 serv.setblocking(0)
  6. 95
  7. 96 # Bind the address.
  8. 97 serv.bind(('', self.PORT))
  9. 98 serv.listen(5)
  10. 99
  11. 100 try:
  12. 101 # Now start listening for a connection!
  13. 102 (self._sock, remote_address) = serv.accept()
  14. 103 except socket.timeout:
  15. 104 logger.debug('Socket connection failed!')
  16. 105 raise DBGPServerNotFoundError(
  17. 106 'No connection was established coming from '
  18. 107 '"%(address)s:%(port)i".' % {
  19. 108 'address':self.ADDRESS,
  20. 109 'port':self.PORT,
  21. 110 })
  22. 111 else:
  23. 112 logger.debug('Socket connection established! The other end of '
  24. 113 'the connection is at "%s:%i".' % remote_address)
  25. 114 finally:
  26. 115 serv.close()
  27.  
  28. File "/home/lee/projects/vim-debug/repo/vimbug/dbgp.py", line 100, in connect
  29. (self._sock, remote_address) = serv.accept()
  30. File "/usr/lib/python2.6/socket.py", line 197, in accept
  31. sock, addr = self._sock.accept()
  32. error: [Errno 11] Resource temporarily unavailable
  33.  
  34. 56 con.connect()
  35. 57 pydbgp_proc = subprocess.Popen(
  36. 58 ('pydbgp.py', '-d', 'localhost:%i' % OPTIONS['pydbgp_port'],
  37. 59 OPTIONS['debug_file']),
  38. 60 stdout=subprocess.PIPE,
  39. 61 stderr=subprocess.PIPE,)
  40.  
  41. 77 def listen(self):
  42. 78 # Create our socket stream to listen on.
  43. 79 serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  44. 80
  45. 81 #serv.settimeout(5)
  46. 82 serv.setblocking(0)
  47. 83
  48. 84 # Bind the address.
  49. 85 serv.bind(('', self.PORT))
  50. 86 serv.listen(5)
  51. 87 self.serv = serv
  52. 88
  53. 89 def accept(self):
  54. 90 (newsock, newaddr) = self.serv.accept()
  55.  
  56. 57 con.listen()
  57. 58 pydbgp_proc = subprocess.Popen(
  58. 59 ('pydbgp.py', '-d', 'localhost:%i' % OPTIONS['pydbgp_port'],
  59. 60 OPTIONS['debug_file']),
  60. 61 stdout=subprocess.PIPE,
  61. 62 stderr=subprocess.PIPE,)
  62. 63 con.accept()
  63.  
  64. File "/home/lee/projects/vim-debug/repo/vimbug/dbgp.py", line 90, in accept
  65. (newsock, newaddr) = self.serv.accept()
  66. File "/usr/lib/python2.6/socket.py", line 197, in accept
  67. sock, addr = self._sock.accept()
  68. error: [Errno 11] Resource temporarily unavailable
  69.  
  70. 89 def accept(self):
  71. 90 rfds, wfds, xfds = select.select([self.serv], [], [], 1)
  72. 91
  73. 92 if self.serv in rfds:
  74. 93 print 'Read ready..?'
  75. 94 (newsock, newaddr) = self.serv.accept()
  76. 95 else:
  77. 96 print 'Not ready..?'
  78.  
  79. import socket
  80. import select
  81.  
  82. SERVER_SOCKADDR = ("", 424242)
  83.  
  84. server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  85. server.setblocking(0) # <------------------
  86. server.bind(SERVER_SOCKADDR)
  87. server.listen(5)
  88.  
  89. client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  90. client.setblocking(0)
  91.  
  92. result = client.connect_ex(SERVER_SOCKADDR)
  93.  
  94. rfds, wfds, xfds = select.select([server], [client], [], 1)
  95. if server in rfds:
  96. print "Server socket: accept does not block"
  97. sockfd, addr = server.accept() # sockfd.send() and sockfd.recv() to
  98. # write and read the stream...
  99. sockfd.setblocking(0)
  100. print sockfd, addr
  101. else:
  102. print "Server socket: accept blocks"
  103. if client in wfds:
  104. print "Client socket: write does not block"
  105. else:
  106. print "Client socket: write blocks"
  107.  
  108.  
  109. server.close()
  110. client.close()
  111.  
  112. [mpenning@Bucksnort ~]$ python socket_test.py
  113. Server socket: accept does not block
  114. <socket._socketobject object at 0xb75764c4> ('127.0.0.1', 35810)
  115. Client socket: write does not block
  116. [mpenning@Bucksnort ~]$
Add Comment
Please, Sign In to add comment