I need to socket script for 1000 client. I get error " thread.error: can't start new thread " . I checked socket same client opened more than one socket. I think i write socket.close and break if no data in loop in 10 min . Clients sends data between 3 sec - 5 min.
import socket
import threading
import psycopg2
from psycopg2 import Error
import string
import datetime
import resource
resource.setrlimit(resource.RLIMIT_NOFILE, (65536, 65536))
bind_ip = '0.0.0.0'
bind_port = 1350
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((bind_ip, bind_port))
server.listen(5000) # max backlog of connections
def handle_client_connection(client_socket,address):
while 1:
print threading.active_count()
request = client_socket.recv(1024)
if not request:
client_socket.close()
break
print 'Listening on {}:{}'.format(bind_ip, bind_port)
#SOME DB OPERATION
while True:
client_sock, address = server.accept()
client_handler = threading.Thread(
target=handle_client_connection,
args=(client_sock,address[0],)
)
client_handler.start()