day02-tcp-CS框架

流程圖

tcp.jpg

代碼區(qū)

Client
def tcp_client():
    try:
        tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        tcp_socket.connect(("10.1.50.131",8282))
        t = time.strftime("%H:%M:%S",time.localtime())
        send_data(soc=tcp_socket,data=t)
        #20秒后關(guān)閉連接
        # threading.Thread(target=close_tcp_client)
        #一直循環(huán)接受tcp服務(wù)器的消息
        while 1:
            receive_data = tcp_socket.recv(10240)
            print(str(receive_data, 'utf-8'))
            time.sleep(2)
            tcp_socket.send(receive_data)
    except BaseException:
        print(error)        
ESSendData = Union[Any, str]
   
def send_data(soc:socket.socket,data:str = ...,):
    encode_data = data.encode("utf-8")
    soc.send(encode_data)

def close_tcp_client(soc:socket.socket):
    time.sleep(20)
    soc.close()
        
if __name__ == "__main__":
    tcp_client()
service

from concurrent.futures import thread
from distutils.log import error
from json.tool import main
import socket
import time
from typing import Any, Union
import threading


def tcp_service():      
    
    #這個(gè)socket僅僅用于監(jiān)聽(tīng),不進(jìn)行通訊,通訊的socket是通過(guò)accept來(lái)返回新的socket
    tcp_service = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    tcp_service.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
    tcp_service.bind(("10.1.50.131",8282))
    #最大監(jiān)聽(tīng)數(shù)
    tcp_service.listen(128)
    while 1:
        #返回元組,client_socket(和客戶端通訊的socket)、client_address = (IP,port) 客戶端的地址
        client_socket,client_address  = tcp_service.accept()
        #新建一個(gè)線程用于接收新的消息
        sub_recv = threading.Thread(target=recv,args=(client_socket,))
        sub_recv.start()


def recv(client_socket):
    while 1:
        data = client_socket.recv(1024)
        print(data.decode("utf-8"))
        time.sleep(2)
        client_socket.send(data)

        if len(data) == 0 :
            print("客戶端已經(jīng)斷開(kāi)")
            break
            

               
if __name__ == "__main__":
    tcp_service()


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

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

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