(2018-04-12.Python從Zero到One)一、python高級編程__3.2.8應(yīng)用:模擬QQ聊天

上一篇文章為:→3.2.7tcp客戶端

應(yīng)用:模擬QQ聊天

客戶端參考代碼

#coding=utf-8
from socket import *

# 創(chuàng)建socket
tcpClientSocket = socket(AF_INET, SOCK_STREAM)

# 鏈接服務(wù)器
serAddr = ('192.168.1.102', 7788)
tcpClientSocket.connect(serAddr)

while True:

    # 提示用戶輸入數(shù)據(jù)
    sendData = raw_input("send:")

    if len(sendData)>0:
        tcpClientSocket.send(sendData)
    else:
        break

    # 接收對方發(fā)送過來的數(shù)據(jù),最大接收1024個字節(jié)
    recvData = tcpClientSocket.recv(1024)
    print 'recv:',recvData

# 關(guān)閉套接字
tcpClientSocket.close()

服務(wù)器端參考代碼

#coding=utf-8
from socket import *

# 創(chuàng)建socket
tcpSerSocket = socket(AF_INET, SOCK_STREAM)

# 綁定本地信息
address = ('', 7788)
tcpSerSocket.bind(address)

# 使用socket創(chuàng)建的套接字默認(rèn)的屬性是主動的,使用listen將其變?yōu)楸粍拥模@樣就可以接收別人的鏈接了
tcpSerSocket.listen(5)

while True:

    # 如果有新的客戶端來鏈接服務(wù)器,那么就產(chǎn)生一個信心的套接字專門為這個客戶端服務(wù)器
    # newSocket用來為這個客戶端服務(wù)
    # tcpSerSocket就可以省下來專門等待其他新客戶端的鏈接
    newSocket, clientAddr = tcpSerSocket.accept()

    while True:

        # 接收對方發(fā)送過來的數(shù)據(jù),最大接收1024個字節(jié)
        recvData = newSocket.recv(1024)

        # 如果接收的數(shù)據(jù)的長度為0,則意味著客戶端關(guān)閉了鏈接
        if len(recvData)>0:
            print 'recv:',recvData
        else:
            break

        # 發(fā)送一些數(shù)據(jù)到客戶端
        sendData = raw_input("send:")
        newSocket.send(sendData)

    # 關(guān)閉為這個客戶端服務(wù)的套接字,只要關(guān)閉了,就意味著為不能再為這個客戶端服務(wù)了,如果還需要服務(wù),只能再次重新連接
    newSocket.close()

# 關(guān)閉監(jiān)聽套接字,只要這個套接字關(guān)閉了,就意味著整個程序不能再接收任何新的客戶端的連接
tcpSerSocket.close()

下一篇文章為:→3.3.1Packet Tracer 介紹&安裝
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,082評論 25 709
  • 烏合之眾:像暫時聚合的一群烏鴉。 比喻臨時雜湊的、毫無組織紀(jì)律的一群人。 提起烏合之眾又常同群龍無首、一盤散沙之類...
    亭寶札記閱讀 271評論 0 1
  • 歡迎關(guān)注微信公眾號:夏天的詩和遠(yuǎn)方 文:夏天 前兩天看了《巴比倫富翁的理財課》這本書,下面這篇文章的大部分內(nèi)容是來...
    夏天的詩和遠(yuǎn)方閱讀 703評論 0 2
  • 2014年的九月份,離開高三校園。 隨后去了一家蛋糕店,不交學(xué)費(fèi)卻也沒工資的,當(dāng)了一個月的打雜工。 同年10月份,...
    花染千城閱讀 239評論 4 2

友情鏈接更多精彩內(nèi)容