python基於tcp協議的簡單即時通訊

2021-10-12 18:12:52 字數 1256 閱讀 6624

sk.bind(('127.0.0.1', 9001)) # 申請作業系統的資源,繫結ip和埠

sk.listen(128) # 被動監聽客戶端傳送過來的訊息,數字表示同一時刻能夠連線客戶端的程度

while true: # 為了和多個客戶端進行握手

conn, addr = sk.accept() # 阻塞,當出現客戶端的請求完成連線,並獲取資料和客戶端的資訊

while true:

send_msg = input('>>>')

conn.send(send_msg.encode('utf-8'))

if send_msg.upper() == 'q': # 如果傳送的訊息為q則退出迴圈,關閉連線

break

msg = conn.recv(1024).decode('utf-8')

if msg.upper() == 'q': # 如果傳送的訊息為q則退出迴圈,關閉連線

break

print(msg)

conn.close() # 揮手 斷開與客戶端的連線

sk.close() # 關閉套接字,歸還申請的作業系統的資源

import socket

sk = socket.socket()

sk.connect(('127.0.0.1', 9001)) # 連線到指定伺服器

while true:

msg = sk.recv(1024).decode('utf-8') # 接受服務端發來的訊息,數字代表接受的最大位元組的長度,因為收發訊息都需要以位元組的形式,所以需要的傳送的訊息進行編碼

if msg.upper() == 'q': # 收到的訊息為q則退出程式

break

print(msg)

send_msg = input('>>>')

sk.send(send_msg.encode('utf-8')) # 傳送的訊息為q則退出程式

if send_msg.upper() == 'q':

break

sk.close() # 關閉套接字

Tcp協議簡讀

tcp提供一種面向連線的,可靠的位元組流服務。面向連線意味著兩個使用tcp的應用 通常是乙個客戶和乙個伺服器 在彼此交換資料之前必須先建立乙個tcp連線。這個過程跟打 相似,先撥號振鈴,等待對方摘機應答,然後才說是誰。在乙個tcp連線中,僅有兩方進行彼此通訊。1.應用資料被分割成tcp認為最適合傳送...

基於tcp協議的socket

serve服務端 import socket sk socket.socket 例項物件 sk.bind 127.0.0.1 8080 集合內設定ip和埠,利用bind方法 sk.listen 監聽資訊 conn,addr sk.accept 接受到資訊 while true ret conn.re...

基於TCP協議的C S通訊

一 環境 os win10 ide visual studio 2010 二 在同一解決方案下新建兩個win32控制台應用程式,專案名分別是server和client,分別在兩個專案的原始檔下新增server.cpp和client.cpp server.cpp include include inc...