twisted連線數問題

2022-07-16 12:51:09 字數 1327 閱讀 8150

twisted預設用的是select()模式,而windows的對檔案描述符(file descriptor)有一定限制,這個限制值是512,在linux的下這個限制為1024, 如果超過這個限制值,就會出現上面的異常。如果要在windows中有更好的表

現,看來得用iocp,而linux下,用epoll則是更合適的方案,而twisted自身就已經支援了這2種模式,看看如何啟用:

windows:

from twisted.internet import iocpreactor

iocpreactor.install()

linux:

from twisted.internet import epollreactor

epollreactor.install()

我的程式是在windows上開發的,最終部署到linux上,所以得寫乙個簡單的判斷來根據系統選擇對應的模式,完整的服務端**調整為:

import os

if os.name!='nt':

from twisted.internet import epollreactor

epollreactor.install()    

else:

from twisted.internet import iocpreactor

iocpreactor.install()

from twisted.internet.protocol import factory,protocol

from twisted.internet import reactor

class gamesocket(protocol):

#有新使用者連線至伺服器

def connectionmade(self):

print 'new client'

#客戶端斷開連線

def connectionlost(self,reason):

print 'lost client'

#收到客戶端傳送資料

def datareceived(self, data):

print 'get data:' + str(data)

#向該客戶端傳送資料

self.transport.write('bingo!i got your msg:'+ str(data))

if __name__=='__main__':

f = factory()

f.protocol = gamesocket

reactor.listentcp(5200,f)

print 'server started...'

reactor.run()

mysql連線數問題備份

這是是查詢資料庫當前設定的最大連線數 mysql show variables like max connections variable name value max connections 1000 可以在 etc my.cnf裡面設定資料庫的最大連線數 mysqld max connectio...

redis連線數合理配置 redis連線數配置多少

redis客戶端連線數 redis通過監聽乙個tcp埠或socket的方式接收來自客戶端的連線,當與客戶端建立連線後,redis內部會進行如下操作 1 客戶端socket會被設定為非阻塞模式,因為redis在網路時間處理上採用的是非阻塞多路復用模型 2 然後為這個socket設定tcp nodela...

Tomcat最大連線數問題

tomcat的server.xml中context元素的以下引數應該怎麼配合適 答曰 maxthreads 150 表示最多同時處理150個連線 minsparethreads 25 表示即使沒有人使用也開這麼多空執行緒等待 maxsparethreads 75 表示如果最多可以空75個執行緒,例如...