TCP服務器和客戶端程序實例

本章出自《Python核心編程》中的實例

創建一個TCP時間戳服務器,用來對客戶的信息添加個時間功能

#-*- coding:utf-8 -*-       

from socket import *
from time import ctime

HOST = ''           #HOST爲空,表示電話可以bind在任何主機上
PORT = 20000        #0~65535,小於1024爲系統保留端口(政府號碼,哈哈哈)
ADDR = (HOST, PORT) #電話號碼
BUFSIZ = 1024      #緩衝區大小

tcpSerSock = socket(AF_INET, SOCK_STREAM) # 創建電話
tcpSerSock.bind(ADDR)  #綁定電話,變身座機
tcpSerSock.listen(5)   #一次最多接聽5個電話

while True:
    print "----waiting----"
    tcpCliSock, addr = tcpSerSock.accept() #獲得了聯繫線路和電話號碼
    print "---connected from:", addr  #看下客戶來自哪裏

    while True:
        data = tcpCliSock.recv(BUFSIZ)
        if not data:
            break
        tcpCliSock.send("[%s]%s"% (ctime(), data))

創建一個TCP客戶端

#-*- coding:utf-8 -*-

from socket import *

HOST = 'localhost'       #填寫服務器的主機,由於我的服務器和客戶端都在本機,就用‘localhost’。
PORT = 20000
ADDR = (HOST, PORT)
BUFSIZ = 1024

tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)

while True:
    data = raw_input('>>>')  #說話
    if not data:         #如果不想對話,無話可說了,就退出來
        break       
    tcpCliSock.send(data)  #發送給服務器
    data = tcpCliSock.recv(BUFSIZ) #獲取服務器的回答
    if not data:        #服務器可能斷掉了,收不到回話
        break
    print data

tcpCliSock.close()   #客戶自己掛電話
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章