1、echoserver.py
-----------------
# -*- coding:utf-8 -*-
#!/usr/bin/env python

import socket
import sys
import argparse

host = '127.0.0.1'
payload = 2048
backlog = 5

#命令行参数处理
parser = argparse.ArgumentParser(description='Echo Server')
parser.add_argument('--port', action='store', dest='port', type=int, required=True)
obtained_args = parser.parse_args()
port = obtained_args.port

# 创建 server socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 启用套接字端口重用
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 绑定socket端口
server_addr = (host, port)
print 'Starting up Echo Server on %s port %s' % server_addr
sock.bind(server_addr)
# 监听客户端连接,backlog指定客户端最大连接数
sock.listen(backlog)
while True:
    print 'Waiting to receive message from client'
    client, address = sock.accept()
    data = client.recv(payload)
    if data:
        print 'Data: %s' % data
        client.send(data)
        print 'sent %s bytes back to %s' % (data, address)
    # 连接关闭
    client.close()

2、运行echoserver.py
$ python echoserver.py --port 9090

3、模拟客户端连接
使用telnet模拟客户端:
$ telnet 127.0.0.1 9090
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
hello world!
hello world!
Connection closed by foreign host.

转自:www.pythonfan.org