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
Ïà¹ØÎĵµ£º
À´Ô´£ºhttp://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/
¿Í»§¶Ë³ÌÐò´úÂ룺
# Client program
from socket import *
# Set the socket parameters
host = "localhost"
port = 21567
buf = 1024
addr = (host,port)
# Create socket
UDPSock = socket(AF_INET,SOCK_DGRAM)
......
PythonÖУ¬º¯ÊýÊǿɱ»ÖØÓõijÌÐò¶Î¡£¶ÔÓÚº¯ÊýµÄ¶¨Ò壬¿ÉÒÔʹÓÃdef¹Ø¼ü×Ö¡£ÏÂÃæ¾ÍÏȶ¨ÒåÒ»¸öº¯Êý£º
def foo():
print('function')
foo()
ÔÚÉÏÊö´úÂëÖУ¬¶¨ÒåÁËÒ»¸öÃûΪfooµÄº¯Êý£¬Õâ¸öº¯ÊýûÓвÎÊý¡£×îºóÒ»ÐдúÂëµÄ¹¦ÄÜÊǵ ......
PythonÓïÑÔÖУ¬Á¬±äÁ¿ºÍËüµÄ¸³Öµ¶¼ÊǺÜÓÐÒâ˼µÄÊÂÇé¡£
ÄãÖ»ÐèÒªÔÚʹÓÃËüµÄʱºòÈÓ¸øËüÒ»¸öÖµ£¬È»ºóÔÚËüµÄ×÷ÓÃÓòÄÚʹÓÃËü¡£ÆäËûµÄÊÂÇé²»ÐèÒªµ£ÐÄ¡£python½âÊÍÆ÷»áÍê³ÉʣϵÄÊÂÇé¡£
1. >>>x = 1
2. >>>x
3. 1
4. >>>
µ±È»Ä㻹¿ÉÒÔÏÔʽµÄɾ³ýËü£¬µ«ÔÚÕâÖ®ºóÄã¾Í²»ÄÜÔÙÒýÓÃÕ⸠......
from: http://www.cnblogs.com/dahuzizyd/archive/2005/03/01/111006.html
pythonÖ§³ÖÃæÏò¶ÔÏóµÄ±à³Ì·ç¸ñ£¬ÕâÀïÖ÷Ҫ˵˵pythonÖеĶà¼Ì³Ð£º
ÏÂÃæµÄ´úÂëʹÓÃpython2.4£¬°²×°ºóʹÓÃidleµÄIDE¿ª·¢»·¾³£¨ËµÊÇIDE £¬±ÈÆðdelphi,VS.netµÈ¼òµ¥µÃÌ«¶àÁË)
´ÓFile-New²Ëµ¥½¨Á¢Ò»¸ö.pyÎļþ£¬Ð´ÏÂÃæµÄ´úÂ룺
class SuperCl ......