国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python tcp server client示例代碼

這篇具有很好參考價(jià)值的文章主要介紹了python tcp server client示例代碼。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

功能:?實(shí)現(xiàn)基本的tcp server端、client端,并引入threading,?保證兩端任意鏈接、斷鏈接,保證兩端的穩(wěn)定運(yùn)行

IP說(shuō)明: server不輸入IP,默認(rèn)為本機(jī)的IP,client需要輸入要鏈接的server端的IP

端口說(shuō)明:server, client端保持一致

ADB調(diào)試說(shuō)明:在連接數(shù)據(jù)線的情況下,PC安裝ADB調(diào)試工具,android端打開(kāi)ADB調(diào)試權(quán)限,輸入adb forward tcp:12345 tcp:8888,?其中12345為PC端口, 8888為android端口。參數(shù)鏈接:adb forward 參考

server code:

from socket import *
import threading
import time
from typing import Optional

class DataSend(threading.Thread):
    tcp_server = Optional[socket]

    def __init__(self, port):
        threading.Thread.__init__(self, name="data send")
        self.port = port


    def run(self):
        # Creating the socket object
        self.tcp_server = socket(AF_INET, SOCK_STREAM)

        # Binding to socket
        self.tcp_server.bind(('', self.port))  # Host will be replaced/substitued with IP, if changed and not running on host

        # Starting TCP listener
        print('begin listen')
        self.tcp_server.listen(3)
        print('end listen')

        while True:
            # Starting the connection
            print('begin accept')
            clientsocket, address = self.tcp_server.accept()
            print(address, 'accepted!')
            try:
                while True:
                    msg_bits = clientsocket.recv(1024)
                    print(msg_bits.decode('utf-8'))


                    # Message sent to client after successful connection
                    message = 'hello! Thank you for connecting to the server' + "\r\n"
                    clientsocket.send( message.encode('utf-8'))
            except ConnectionResetError:
                continue
            clientsocket.close()


if __name__ == '__main__':
    data_send = DataSend(12345)
    data_send.start()
    while data_send.is_alive():
        time.sleep(1)

client code:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-703304.html

import threading
from socket import *
import time
from typing import Optional

class DataRec(threading.Thread):
    tcp_client: Optional[socket]

    def __init__(self, ip, port):
        threading.Thread.__init__(self, name="data rec")
        self.ip = ip
        self.port = port
        self.tcp_client = None

    def wait_tcp_connect(self):
        while self.tcp_client is None:
            time.sleep(1)
            self.tcp_client = socket(AF_INET, SOCK_STREAM)
            try:
                print('try to init client {}:{}'.format(self.ip, self.port))
                self.tcp_client.connect((self.ip, self.port))
                print('client inited!')
            except Exception as e:
                self.tcp_client = None
                print("client init failed, waiting for server!")

    def run(self):
        self.wait_tcp_connect()
        msg_buffer = ''
        while True:
            try:
                time.sleep(1)
                self.tcp_client.send('hello from client'.encode('utf-8'))
                msg_bits = self.tcp_client.recv(1024*8)
                if not msg_bits:
                    continue

                msg_str = msg_bits.decode('utf-8')

                print("rec: {}".format(msg_str))

            except error as msg:
                print('client rec msg catch error({} - {})'.format(error, msg))
                self.tcp_client.close()
                self.tcp_client = None
                self.wait_tcp_connect()
                msg_buffer = ''
            # except Exception as e:
            #     print("client cat other error({})".format(e))



if __name__ == '__main__':
    data_rec = DataRec('127.0.0.1', 12345)
    data_rec.start()
    while data_rec.is_alive():
        time.sleep(1)

到了這里,關(guān)于python tcp server client示例代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • TCP IP網(wǎng)絡(luò)編程(四) 基于TCP的服務(wù)器端、客戶端

    TCP IP網(wǎng)絡(luò)編程(四) 基于TCP的服務(wù)器端、客戶端

    TCP/IP協(xié)議棧 ? TCP/IP協(xié)議棧 TCP/IP協(xié)議棧共分為4層,可以理解為數(shù)據(jù)收發(fā)分成了4個(gè)層次化過(guò)程。 ? TCP協(xié)議棧 ? UDP協(xié)議棧 鏈路層 鏈路層是物理連接領(lǐng)域標(biāo)準(zhǔn)化的結(jié)果,也是最基本的領(lǐng)域,專門定義LAN、WAN、MAN等網(wǎng)絡(luò)標(biāo)準(zhǔn)。兩臺(tái)主機(jī)通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換,這需要像下圖所示

    2024年01月16日
    瀏覽(18)
  • 《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于TCP的服務(wù)器端/客戶端

    《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于TCP的服務(wù)器端/客戶端

    目錄 1--TCP/IP協(xié)議棧 2--TCP服務(wù)器端默認(rèn)函數(shù)調(diào)用順序 3--TCP客戶端的默認(rèn)函數(shù)調(diào)用順序 4--Linux實(shí)現(xiàn)迭代回聲服務(wù)器端/客戶端 5--Windows實(shí)現(xiàn)迭代回聲服務(wù)器端/客戶端 6--TCP原理 7--Windows實(shí)現(xiàn)計(jì)算器服務(wù)器端/客戶端 ????????TCP/IP協(xié)議棧共分 4 層,可以理解為數(shù)據(jù)收發(fā)分成了 4 個(gè)層

    2024年02月10日
    瀏覽(28)
  • TCP IP網(wǎng)絡(luò)編程(五) 基于TCP的服務(wù)器端、客戶端 (補(bǔ)充)

    TCP IP網(wǎng)絡(luò)編程(五) 基于TCP的服務(wù)器端、客戶端 (補(bǔ)充)

    回聲客戶端出現(xiàn)的問(wèn)題 在上一節(jié)基于TCP的服務(wù)器端、回聲客戶端中,存在問(wèn)題: 如果數(shù)據(jù)太大,操作系統(tǒng)就有可能把數(shù)據(jù)分成多個(gè)數(shù)據(jù)包發(fā)送到客戶端,客戶端有可能在尚未收到全部數(shù)據(jù)包時(shí)就調(diào)用read函數(shù) 問(wèn)題出在客戶端,而不是服務(wù)器端,先來(lái)對(duì)比一下客戶端與服務(wù)器端

    2024年02月09日
    瀏覽(37)
  • JavaEE & UDP簡(jiǎn)易翻譯服務(wù)器 & 網(wǎng)絡(luò)編程示例2 & TCP回顯服務(wù)器,回顯客戶端

    JavaEE & UDP簡(jiǎn)易翻譯服務(wù)器 & 網(wǎng)絡(luò)編程示例2 & TCP回顯服務(wù)器,回顯客戶端

    禁止白嫖 T T 點(diǎn)點(diǎn)贊唄 這個(gè)翻譯器主要是在上一章的回顯服務(wù)器和回顯客戶端上進(jìn)行修改 修改了計(jì)算響應(yīng)的過(guò)程, 即process方法 1.1 重寫方法 重寫方法是Java中的一種重要手段 指在一個(gè)類的子類里,對(duì)父類的一個(gè)方法進(jìn)行重新定義! 而父類的權(quán)限級(jí)別要大于等于子類~ 【除了

    2023年04月16日
    瀏覽(18)
  • unreal engine c++ 創(chuàng)建tcp server, tcp client

    TCP客戶端 TcpConnect.h TcpConnect.cpp tcp server cpp FTcpServerReceive h cpp 在 GameInstance 使用

    2024年02月14日
    瀏覽(20)
  • Socket網(wǎng)絡(luò)編程(TCP/IP)實(shí)現(xiàn)服務(wù)器/客戶端通信。

    Socket網(wǎng)絡(luò)編程(TCP/IP)實(shí)現(xiàn)服務(wù)器/客戶端通信。

    一.前言 回顧之前進(jìn)程間通信(無(wú)名管道,有名管道,消息隊(duì)列,共享內(nèi)存,信號(hào),信號(hào)量),都是在同一主機(jī)由內(nèi)核來(lái)完成的通信。 那不同主機(jī)間該怎么通信呢? 可以使用Socket編程來(lái)實(shí)現(xiàn)。 Socket編程可以通過(guò)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)實(shí)現(xiàn)不同主機(jī)之間的通訊。 二.Socket編程的網(wǎng)絡(luò)模型如

    2024年02月08日
    瀏覽(35)
  • 【TCP/IP】多進(jìn)程服務(wù)器的實(shí)現(xiàn)(進(jìn)階) - 多進(jìn)程服務(wù)器模型及代碼實(shí)現(xiàn)

    【TCP/IP】多進(jìn)程服務(wù)器的實(shí)現(xiàn)(進(jìn)階) - 多進(jìn)程服務(wù)器模型及代碼實(shí)現(xiàn)

    ???????? 經(jīng)過(guò)前面的鋪墊,我們已經(jīng)具備實(shí)現(xiàn)并發(fā)服務(wù)器的基礎(chǔ)了,接下來(lái)讓我們嘗試將之前的單任務(wù)回聲服務(wù)器改裝成多任務(wù)并發(fā)模式吧! ????????在編寫代碼前,先讓我們大致將多任務(wù)(回聲)服務(wù)器的模型抽象一下,如下圖所示: ? ? ? ? 當(dāng)客戶端請(qǐng)求服務(wù)(

    2024年02月08日
    瀏覽(15)
  • 《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于UDP的服務(wù)器端/客戶端

    《TCP/IP網(wǎng)絡(luò)編程》閱讀筆記--基于UDP的服務(wù)器端/客戶端

    目錄 1--TCP和UDP的主要區(qū)別 2--基于 UDP 的數(shù)據(jù) I/O 函數(shù) 3--基于 UDP 的回聲服務(wù)器端/客戶端 4--UDP客戶端Socket的地址分配 5--UDP存在數(shù)據(jù)邊界 6--UDP已連接與未連接的設(shè)置 ① TCP 提供的是可靠數(shù)據(jù)傳輸服務(wù),而 UDP 提供的是不可靠數(shù)據(jù)傳輸服務(wù); ② UDP 在結(jié)構(gòu)上比 TCP 更簡(jiǎn)潔,其不會(huì)

    2024年02月09日
    瀏覽(51)
  • Linux網(wǎng)絡(luò)編程之TCP/IP實(shí)現(xiàn)高并發(fā)網(wǎng)絡(luò)服務(wù)器設(shè)計(jì)指南

    目錄 引言: 多進(jìn)程服務(wù)器 例程分享: 多線程服務(wù)器 ?例程分享: I/O多路復(fù)用服務(wù)器 select 例程分享: poll 例程分享: epoll 例程分享: 總結(jié)建議 ????????隨著互聯(lián)網(wǎng)的迅猛發(fā)展,服務(wù)器面臨著越來(lái)越多的并發(fā)請(qǐng)求。如何設(shè)計(jì)一個(gè)能夠高效處理大量并發(fā)請(qǐng)求的服務(wù)器成為

    2024年02月20日
    瀏覽(32)
  • TwinCAT3 Modbus-TCP Client/Server使用

    TwinCAT3 Modbus-TCP Client/Server使用

    目錄 一、環(huán)境配置和準(zhǔn)備 1、PLC中安裝TF6250-Modbus-TCP庫(kù) 2、勾選TF6250的license 3、PLC工程中添加Tc2_ModbusSrv庫(kù)文件 4、分別創(chuàng)建測(cè)試ModbusTCP測(cè)試的Server和Client程序 二、PLC作為Client端 1、設(shè)置測(cè)試電腦IP地址 2、運(yùn)行MobusTCP測(cè)試工具 3、PLC端程序編寫 (1)讀取離散量輸入 (2)讀取線圈

    2024年01月16日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包