(self, buffer_size)
| 657 | raise |
| 658 | |
| 659 | def recv(self, buffer_size): |
| 660 | try: |
| 661 | data = self.socket.recv(buffer_size) |
| 662 | if not data: |
| 663 | # a closed connection is indicated by signaling |
| 664 | # a read condition, and having recv() return 0. |
| 665 | self.handle_close() |
| 666 | return b'' |
| 667 | else: |
| 668 | return data |
| 669 | except socket.error as why: |
| 670 | # winsock sometimes raises ENOTCONN |
| 671 | if why.args[0] in (EAGAIN, EWOULDBLOCK, WSAEWOULDBLOCK): |
| 672 | return b'' |
| 673 | if why.args[0] in _DISCONNECTED: |
| 674 | self.handle_close() |
| 675 | return b'' |
| 676 | else: |
| 677 | raise |
| 678 | |
| 679 | def close(self): |
| 680 | self.connected = False |
no test coverage detected