實現簡單的回顯服務

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章