1. 程式人生 > >#python 網路程式設計之TCP半雙工聊天小練習

#python 網路程式設計之TCP半雙工聊天小練習

1.建立TCP伺服器端

from socket import *  #匯入相應的模組

HOST = ''   #主機名
POST = 21567  #埠
BUFSIZ = 1024  #設定緩衝區大小
ADDR = (HOST , POST)

tcpSerSock = socket(AF_INET ,SOCK_STREAM)
tcpSerSock.bind(ADDR)   #將地址繫結到套接字
tcpSerSock.listen(1)    #設定連線客戶端個數

while True:
    print('wait for connection...')
    tcpCliSock, addr = tcpSerSock.accept()  # 主動接受TCP客戶端連線,一直等到連線
    print('...connected from:', addr)

    while True:
        date = str(tcpCliSock.recv(BUFSIZ),encoding='utf-8')
        print(date)
        if not date:
            break
        t = input(">")
        #print(t)
        tcpCliSock.send(bytes(t, encoding='utf-8'))   #傳送訊息
    tcpCliSock.close()
tcpSerSock.close()

2.建立TCP客戶端

from socket import *

HOST = '127.0.0.1'
POST = 21567
BUFSIZ = 1024
ADDR = (HOST , POST)

tcpCliSock = socket()  #建立例項化物件
tcpCliSock.connect(ADDR)

while True:
    data = input('> ')
    if not data:
        break
    tcpCliSock.send(bytes(data, encoding='utf-8'))
    #print(data)
    data = str(tcpCliSock.recv(BUFSIZ), encoding='utf-8')
    if not data:
        break
    print(data)
tcpCliSock.close()

**PS:第一次寫部落格,不是很會使用MarkDown,所以寫的內容並不是太好,只有相應的程式碼,基本的一些東西沒有,只是記錄一些自己在學習python時學到的一些東西,不喜勿噴!