pythonʹÓÃSocketServers
pythonʹÓÃSocketServers
SocketServersÄ£¿éΪһ×ésocket·þÎñÀඨÒåÁËÒ»¸ö»ùÀ࣬Õâ×éÀàѹËõºÍÒþ²ØÁ˼àÌý¡¢½ÓÊܺʹ¦Àí½øÈëµÄsocketÁ¬½ÓµÄϸ½Ú¡£
1¡¢SocketServers¼Ò×å
TCPServerºÍUDPServer¶¼ÊÇSocketServerµÄ×ÓÀ࣬ËüÃÇ·Ö±ð´¦ÀíTCPºÍUDPÐÅÏ¢¡£
×¢Ò⣺SocketServerÒ²ÌṩUnixStreamServer(TCPServerµÄ×ÓÀà)ºÍUNIXdatagramServer(UDPServerµÄ×ÓÀà)£¬ËüÃǶ¼ÈçͬÆä¸¸ÀàÒ»Ñù³ýÁËÔÚ´´½¨¼àÌýsocketʱʹÓÃAF_UNIX´úÌæÁËAF_INET¡£
ĬÈÏÇé¿öÏ£¬socket·þÎñÒ»´Î´¦ÀíÒ»¸öÁ¬½Ó£¬µ«ÊÇÄã¿ÉÒÔʹÓÃThreadingMixINºÍForkingMixInÀàÀ´´´½¨ÈÎÒ»SocketServerµÄÏ̺߳Í×Ó½ø³Ì¡£Êµ¼ÊÉÏ£¬SocketServerÄ£¿éÌṩÁËһЩ¶ÔЩÓÐÓõÄÀàÀ´½â¾öÄãµÄÂé·³£¬ËüÃÇÊÇ£ºForkingUDPServer¡¢ForkingTCPServer¡¢ThreadingUDPServer¡¢ThreadingTCPServer¡¢ThreadingUnixStreamServerºÍThreadingUnixDatagramServer¡£
SocketServerÒÔͨ³£µÄ·½·¨´¦Àí½øÈëµÄÁ¬½Ó£»ÒªÊ¹Ëü¸üÓÐÓã¬ÄãÓ¦¸ÃÌṩÄã×Ô¼ºµÄÇëÇó´¦ÀíÆ÷Àà¸øËüÒÔ±ãËü´«µÝÒ»¸ösocketÈ¥´¦Àí¡£SocketServerÄ£¿éÖеÄBaseRequestHandlerÀàÊÇËùÓÐÇëÇó´¦ÀíÆ÷µÄ¸¸Àà¡£¼ÙÉ裬ÀýÈçÄãÐèҪдһ¸ö¶àÏ̵߳ĵç×ÓÓʼþ·þÎñÆ÷£¬Ê×ÏÈÄãÒª´´½¨Ò»¸öMailRequestHandler£¬ËüÊÇBaseRequestHandlerµÄ×ÓÀ࣬Ȼºó°ÑËü´«µÝ¸øÒ»¸öд´½¨µÄSocketServer:
import SocketServer
...#´´½¨ÄãµÄMailRequestHandler
addr=('220.172.20.6',25) #¼àÌýµÄµØÖ·ºÍ¶Ë¿Ú
server=SocketServer.ThreadingTCPServer(addr,MailRequestHandler)
server.serve_forever()
ÿ´ÎÒ»¸öеÄÁ¬½Óµ½À´Ê±£¬Õâ¸öserver´´½¨Ò»¸öеÄMailRequestHandlerʵÀý²¢µ÷ÓÃËüµÄhandle()·½·¨À´´¦ÀíÕâ¸öеÄÇëÇó¡£ÒòΪserver¼Ì³Ð×ÔThreadingTCPServer£¬¶ÔÓÚÿ¸öеÄÇëÇóËü¶¼Æô¶¯Ò»¸öµ¥¶ÀµÄÏß³ÌÀ´´¦ÀíÕâ¸öÇëÇó£¬ÒÔ±ãÓÚ¶à¸öÇëÇóÄܹ»±»Í¬Ê±´¦Àí¡£Èç¹ûÓÃhandle_request()´úÌæserver_forever£¬Ëü½«Ò»¸öÒ»¸öµÄ´¦ÀíÁ¬½ÓÇëÇó¡£server_forever Ö»ÊÇ·´¸´µ÷ÓÃhandle_request¶øÒÑ¡£
Ò»°ãÀ´Ëµ£¬ÄãÖ»ÐèʹÓÃsocket·þÎñÖ®Ò»£¬µ«ÊÇÈç¹ûÄãÐèÒª´´½¨Äã×Ô¼ºµÄ×ÓÀàµÄ»°£¬Äã¿ÉÒÔ¸²¸ÇÎÒÃÇÏÂÃæÌáµ½µÄ·½·¨À´¶¨ÖÆËü¡£
µ±·þÎñ±»µÚÒ»´Î´´½¨µÄʱºò£¬__init__º¯Êýµ÷ÓÃserver_bind()·½·¨À´°ó¶¨¼àÌýsocket(self.socket)µ½ÕýÈ·µÄµØÖ·(self.server_address)¡£È»ºóµ÷ÓÃserver_activate()À´¼¤»îÕâ¸ö·þÎñ(ĬÈÏÇé¿öÏ£¬µ÷ÓÃsocketµÄlisten·½·¨)¡£
Õâ¸ösocket·þÎñ²»×öÈκÎÊÂÇéÖ±µ½µ÷ÓÃÁËhandle_request»òserve_forever·½·¨¡£handle_requestµ÷ÓÃget_r
Ïà¹ØÎĵµ£º
PythonÖУ¬º¯ÊýÊǿɱ»ÖØÓõijÌÐò¶Î¡£¶ÔÓÚº¯ÊýµÄ¶¨Ò壬¿ÉÒÔʹÓÃdef¹Ø¼ü×Ö¡£ÏÂÃæ¾ÍÏȶ¨ÒåÒ»¸öº¯Êý£º
def foo():
print('function')
foo()
ÔÚÉÏÊö´úÂëÖУ¬¶¨ÒåÁËÒ»¸öÃûΪfooµÄº¯Êý£¬Õâ¸öº¯ÊýûÓвÎÊý¡£×îºóÒ»ÐдúÂëµÄ¹¦ÄÜÊǵ ......
Python ³ÌÐòÖеÄÒ»ÇÐÊý¾Ý¶¼ÊǶÔÏó¡£¶ÔÏó°üÀ¨×Ô¶¨Òå¶ÔÏó¼°»ù±¾µÄÊý¾ÝÀàÐÍÈçÊýÖµ¡¢×Ö·û´®¡¢ÁÐ±í¡¢×ÖµäµÈ¡£ÄãÄܹ»ÒÔÀà»òÀ©Õ¹ÀàÐ͵ķ½Ê½´´½¨×Ô¶¨Òå¶ÔÏó¡£±¾ÕÂÖ÷ÒªÃèÊö Python¶ÔÏóÄ£Ðͼ°µÚËÄÕÂ--ÔËËã·ûÓë±í´ïʽÖÐÒªÓõ½µÄһЩԤ±¸ÖªÊ¶¡£
1.1. ÊõÓï
³ÌÐòÖеÄÒ»ÇÐÊý¾Ý¶¼ÊǶÔÏó£¬Ã¿¸ö¶ÔÏó¶¼ÓÐÈý¸ö»ù±¾ÊôÐÔ£¬¼´±êʶ(ÀàË ......
pythonµÄ×Ô¶¯²¹È«Óкܶ෽·¨£¬±¾ÖÊÉ϶¼ÊÇÓÃ×ֵ䡣Éú³É×Öµä×î³£Óõĵ±È»ÊÇctagÁË£¬µ«ÊÇÿ´ÎÔö¼ÓÄ£¿é¶¼ÒªctagÒ»´ÎҲͦÂé·³µÄ¡£
ÄÜ͵ÀÁµÄÊǺó͵ÀÁÊÇÒ»ÖÖÃÀµÂ£¬ÓÐÈËÒѾ×öÁË×ÖµäºÍÔö¼ÓÄ£¿éµÄ½Å±¾£¬ÎÒÃǸÉÂï²»×øÏíÆä³ÉÄØ¡£
http://vim.sourceforge.net/scripts/script.php?script_id=850
Õâ¸öÃûΪpydictionµÄÏîÄ¿°üÀ¨ÁËÒ»¸ö×Ö ......
import time,thread
def test(a,b):
for i in range(a,b):
time.sleep(1)
print i
def start():
thread.start_new_thread(test,(1,1001))
thread.start_new_thread(test,(1000,2001))
if __name__=='__main__':
start()
......
E-mailÖ÷ÒªÓÉÓʼþÍ·ºÍÓʼþÌåÁ½²¿·Ö×é³É¡£
ÓʼþÍ·ÖеÄÄÚÈݺÍÎÒÃǼÄÐÅʱдÔÚÐÅ·âÉϵÄÄÚÈÝ´óͬСÒ⣬µ±È»ÕâÀïÒ²°üº¬Á˺ܶà·¹ýµÄ“Óʾ֔µÄÐÅÏ¢ÁË¡£
ÓʼþÌåÖеÄÄÚÈݾÍÊÇÎÒÃÇдµÄÐÅ»òÕß°ü¹ü¡£
python×ÔÉí°üº¬ÁËemailÄ£¿é´¦Àí¿ÉÒÔ¿ìËٵĴ¦ÀíE-mailÖеÄÐÅÏ¢
import email
#´ò¿ªÒ»¸öÎļþ
fp = open('email.eml', ' ......