Python network programming common code segment, python Network Programming

Source: Internet
Author: User

Python network programming common code segment, python Network Programming

Server code:

#-*-Coding: cp936-*-import socket sock = socket. socket (socket. AF_INET, socket. SOCK_STREAM) # initialize socket sock. bind ("127.0.0.1", 8001) # bind the local address, port 8001 sock. listen (5) # Wait for the client to connect while True: print "waiting client connection... "connection, address = sock. accept () # receive client connection request print "a client have connected... "while True: try: connection. settimeout (5) # Set the timeout value buf = connection. recv (1024) # receive data if buf = "1": conn Ection. send ("you have send me 1! Welcome to server! ") Elif buf =" 2 ": connection. send (" you have send me 2! I have recv! ") Elif buf =" 3 ": connection. send (" close the connection! ") Break else: connection. send (" unknow command! ") Failed t socket. timeout: print" time out "connection. close () print" a client exit ..."

Client code:

import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(("127.0.0.1", 8001)) import time time.sleep(2)while True:  data=raw_input("input command:");  sock.send(data)  print sock.recv(1024)  if data=="3":    breaksock.close()

1. First, open two IDLE to open the server and client code respectively.
2. When F5 runs the server code, the waiting client connection...
3. When F5 runs the client code, input command :;
4. Now the server and client are connected and can communicate normally,

5.when the server code is run again, an error may occur. In this case, you can use the task manager to stop the pythonw.exe process and re-open the process. compile it!

Client:

import sockets=socket.socket()host = socket.gethostname()port = 1234s.connect((host, port))print s.recv(1024)

Server:

import sockets = socket.socket()host = socket.gethostname()port = 1234s.bind((host, port)) s.listen(5)while True: c, addr = s.accept() print 'Got connection from', addr c.send('Thank you for connecting') c.close()

Http Programming

from urllib import urlopenwebpage = urlopen('http://www.python.org')

Add a regular expression

import retext = webpage.read()m = re.search('<a href="([^"]+)" .*?>about</a>', text, re.IGNORECASE)m.group(1)

Urllib
Urllib2

An example of a small SocketServer-based server:

from SocketServer import TCPServer, StreamRequestHandler>>> class Handler(StreamRequestHandler):def handle(self):addr = self.request.getpeername()print 'Got connection from', addrself.wfile.write('Thank you for connecting') >>> server = TCPServer(('',1234), Handler)>>> server.serve_forever()

Use SocketServer for forks and thread processing
Forking Server:

from SocketServer import TCPServer,ForkingMinIn, StreamRequestHandlerclass Server(ForkingMinIn, TCPServer):passclass Handler(StreamRequestHandler): def handle(self):  addr = self.request.getpeername()  print 'Got connection from',addr  self.wfile.write('Thank you for connection')server = Server(('',1234),Handler)server.serve_forever()

Thread Server:

from SocketServer import TCPServer, ThreadingMixIn, StreamRequestHandlerclass Server(ThreadingMixIn, TCPServer):passclass Handler(StreamRequestHandler): def handle(self):  addr = self.request.getpeername()  print 'Got connection from',addr  self.wfile.write('Thank you for connecting')server = Server(('',1234),Handler)server.serve_forever()

Asynchronous I/O with select and pool
Select Service:

import socket, selects = socket.socket()host = socket.gethostname()prot = 1234s.bind((host,port)) s.listen(5)inputs = [s]while True: rs,ws,es = select.select(inputs,[],[]) for r in rs:  if r is s:  c, addr = s.accept()  print 'Got connection from',addr  inputs.append(c) else:  try:   data = r.recv(1024)   disconnected = not data  except socket.error:   disconnected = True     if disconnected:   print r.getpeername(), 'disconnected'   inputs.remove(r)  else:   print data

Pool Server:

import socket, selects = socket.socket()host = socket.gethostname()port = 1234s.bind((host, port)) fdmap = {s.fileno():s} s.listen(5)p = select.poll()p.register(s)while True: events = p.poll() for fd, event in events:  if fd in fdmap:   c, addr = s.accept()   print 'Got connection from', addr   p.register(c)   fdmap[c.fileno()]=c  elif event & select.POLLIN:   data = fdmap[fd].recv(1024)   if not data:    print fdmap[fd].getpeername(),'disconnected'    p.unregister(fd)    del fdmap[fd]  else:   print data

Twisted network framework

Http://www.bkjia.com/article/64199.htm

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.