(self, buffer_size)
| 383 | raise |
| 384 | |
| 385 | def recv(self, buffer_size): |
| 386 | try: |
| 387 | data = self.socket.recv(buffer_size) |
| 388 | if not data: |
| 389 | # a closed connection is indicated by signaling |
| 390 | # a read condition, and having recv() return 0. |
| 391 | self.handle_close() |
| 392 | return b'' |
| 393 | else: |
| 394 | return data |
| 395 | except OSError as why: |
| 396 | # winsock sometimes raises ENOTCONN |
| 397 | if why.errno in _DISCONNECTED: |
| 398 | self.handle_close() |
| 399 | return b'' |
| 400 | else: |
| 401 | raise |
| 402 | |
| 403 | def close(self): |
| 404 | self.connected = False |