Articles of sockets

Aumente TimeOutError después de un tiempo dado para multiprocessing.connection.Listener.accept ()

Estoy intentando interrumpir multiprocessing.connection.Listener.accept() , pero hasta ahora no he tenido éxito. Como no proporciona un parámetro de timeout , pensé que tal vez podría usar socket.setdefaulttimeout() para interrumpirlo, como se sugiere en la publicación que no puedo encontrar más, aquí en SO. Esto no funcionó. Entonces intenté llamar a close() en el objeto Listener() […]

¿Cómo los lenguajes de scripting usan sockets?

Python, Perl y PHP, todos soportan sockets de transmisión TCP . Pero, exactamente, ¿cómo uso los sockets en un archivo de script que se ejecuta mediante un servidor web (por ejemplo, Apache), suponiendo que solo tengo acceso a FTP y no acceso de root a la máquina? Cuando un cliente se conecta a un puerto […]

Cierre de zócalo y rebobinado: ¿Cómo evitar la espera larga?

Estoy trabajando con socket en python, y estoy en la etapa de desarrollo necesito matar y reiniciar mi progtwig con frecuencia. El problema es que una vez que eliminé mi script de Python, debo esperar mucho tiempo para poder volver a enlazar el socket de escucha. Aquí hay un fragmento para reproducir el problema: #!/usr/bin/env […]

Única instancia de clase en Python

Estoy creando una aplicación Python que incluye comunicación de socket con un servidor. Me gustaría tener un módulo que pueda usarse en toda mi aplicación (varios otros módulos). Actualmente mi módulo se ve así: class SocketCommunication: def __init__(self): self.socketIO = SocketIO(settings.ADDRESS, settings.PORT, Namespace) def emit(self, message, data): json_data = json.dumps(data.__dict__) self.socketIO.emit(message, json_data) class Namespace(BaseNamespace): def […]

Solicitudes de Python, ¿cómo enlazar a una ip de origen diferente para cada solicitud?

Estoy tratando de aprender algo de python, y estoy teniendo problemas con la lógica en lo que quiero probar. Actualmente, mi código está escrito de manera que el enlace a source_address no cambia cuando se inicia el proceso import socket import requests real_create_conn = socket.create_connection def set_src_addr(*args): address, timeout = args[0], args[1] source_address = (‘201.XX1’, […]

¿Se puede utilizar SO_REUSEPORT en los sockets de dominio Unix?

Los kernels de Linux> = 3.9 permiten compartir sockets entre procesos con equilibrio de carga en el kernel configurando SO_REUSEPORT : http://lwn.net/Articles/542629/ ¿Cómo se puede usar esto para sockets de tipo AF_UNIX ? Parece que solo funciona con TCP, no con sockets de dominio Unix. Aquí hay un progtwig de prueba de Python: import os […]

Cómo cerrar la conexión de socket en Ctrl-C en un progtwig python

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) any_connection = False while True: try: conn, addr = s.accept() data = conn.recv(1024) any_connection = True # keep looking if not data: continue pid = os.fork() if pid == 0: server_process(data, conn) except KeyboardInterrupt: break if any_connection: print(“Closing connection”) conn.close() Estoy captando la señal de Interrupción de KeyboardInterrupt […]

Uso de “peticiones” de Python con una conexión de socket existente

La biblioteca de “solicitudes” de Python está de moda actualmente, debido a la hermosa interfaz que proporciona para realizar solicitudes HTTP, pero debajo de ella parece haber muchas capas de direccionamiento indirecto: sesiones, adaptadores HTTP y, finalmente, la mecánica de urllib3. ¿Dónde en esta stack de abstracciones es el lugar correcto para intervenir si ya […]

Apague el servidor de sockets serve_forever () en una aplicación Python de un hilo

Sé que socketserver tiene un método shutdown () que hace que el servidor se apague, pero esto solo funciona en varias aplicaciones de subprocesos, ya que el cierre se debe realizar desde un subproceso diferente del subproceso donde se ejecuta serve_forever (). Mi aplicación maneja solo una solicitud a la vez, por lo que no […]

Cómo detectar esta excepción de Python: error: El host remoto cerró a la fuerza una conexión existente

Estoy intentando capturar esta excepción particular (y solo esta excepción) en Python 2.7, pero parece que no puedo encontrar documentación en la clase de excepción. Hay uno [Errno 10054] An existing connection was forcibly closed by the remote host Mi código hasta ahora: try: # Deleting filename self.ftp.delete(filename) return True except (error_reply, error_perm, error_temp): return […]