| 161 | self.start() |
| 162 | |
| 163 | def disconnect_socket(self): |
| 164 | self.logger.info("Request to close socket received") |
| 165 | self._do_stop = True |
| 166 | try: |
| 167 | self._socket.socket.shutdown(socket.SHUT_RDWR) |
| 168 | except (socket.error, OSError) as exc: |
| 169 | if exc.errno in (errno.ENOTCONN, errno.EBADF): |
| 170 | pass # Socket is not connected, so can't send FIN packet. |
| 171 | else: |
| 172 | raise |
| 173 | self._socket.socket.close() |
| 174 | self.logger.info("Socket closed, waiting for receiver thread to terminate...") |
| 175 | if self._thread and self._thread.is_alive(): |
| 176 | self._thread.join() |
| 177 | self._cancel_all_callbacks() |
| 178 | self.logger.info("Done closing socket: Receiving thread terminated, socket disconnected") |
| 179 | |
| 180 | def send_hello(self, url, max_messagesize=0, max_chunkcount=0): |
| 181 | hello = ua.Hello() |