python socket代码 摘自 Programming Python 原汁原味代码

客户端

############################################################################# Server side: open a TCP/IP socket on a port, listen for a message from# a client, and send an echo reply; this is a simple one-shot listen/reply# conversation per client, but it goes into an infinite loop to listen for# more clients as long as this server script runs; the client may run on # a remote machine, or on same computer if it uses 'localhost' for server############################################################################     from socket import *                    # get socket constructor and constantsmyHost = ''                             # server machine, '' means local hostmyPort = 50007                          # listen on a non-reserved port number     sockobj = socket(AF_INET, SOCK_STREAM)       # make a TCP socket objectsockobj.bind((myHost, myPort))               # bind it to server port number sockobj.listen(5)                            # listen, allow 5 pending connects     while True:                                  # listen until process killed    connection, address = sockobj.accept()   # wait for next client connect    print 'Server connected by', address     # connection is a new socket    while True:        data = connection.recv(1024)         # read next line on client socket        if not data: break                   # send a reply line to the client        connection.send('Echo=>' + data)     # until eof when socket closed    connection.close()

客户端

############################################################################# Client side: use sockets to send data to the server, and print server's # reply to each message line; 'localhost' means that the server is running# on the same machine as the client, which lets us test client and server # on one machine;  to test over the Internet, run a server on a remote# machine, and set serverHost or argv[1] to machine's domain name or IP addr;# Python sockets are a portable BSD socket interface, with object methods # for the standard socket calls available in the sytstem's C library;############################################################################     import sysfrom socket import *              # portable socket interface plus constantsserverHost = 'localhost'          # server name, or: 'starship.python.net'serverPort = 50007                # non-reserved port used by the server     message = ['1']           # default text to send to serverif len(sys.argv) > 1:    serverHost = sys.argv[1]                # or server from cmd line arg 1    if len(sys.argv) > 2:                   # or text from cmd line args 2..n        message = sys.argv[2:]              # one message for each arg listed     sockobj = socket(AF_INET, SOCK_STREAM)      # make a TCP/IP socket objectsockobj.connect((serverHost, serverPort))   # connect to server machine and port     for line in message:    sockobj.send(line)                      # send line to server over socket    data = sockobj.recv(1024)               # receive line from server: up to 1k    print 'Client received:', repr(data)    # make sure it is quoted, was `x`     sockobj.close()                             # close socket to send eof to server