Matlab(Client)和Python(Server)進行TCP通信


import socket
import time
#IPV4,TCP協議
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#綁定ip和端口,bind接受的是一個元組
sock.bind(('172.23.23.89',54378))
#設置監聽,其值阻塞隊列長度,一共可以有5+1個客戶端和服務器連接
sock.listen(5)

a=[1,2,3,4]

while True:

    # 將發送數據轉化為String
    s=str(a)
    # 等待客戶請求
    connection,address = sock.accept()

    # 打印客戶端地址
    print("client ip is:",address)
    # 接收數據,並存入buf
    buf = connection.recv(40960)
    print(buf.decode('utf-8'))

    # 發送數據
    connection.send(bytes(s, encoding="utf-8"))
    # 關閉連接
    connection.close()
    time.sleep(1)
 # 關閉服務器
sock.close()
clc
clear

tcpclient = tcpip('172.23.23.89', 54378, 'Timeout', 60,'OutputBufferSize',10240,'InputBufferSize',10240);%連接這個ip和這個端口的UDP服務器
%t.BytesAvailableFcnMode='byte'
%while(1)
    %a=1:10
    fopen(tcpclient);
    fwrite(tcpclient,'please sent');%發送一段數據給tcp服務器。服務器好知道matlab的ip和端口
    while(1) %輪詢,直到有數據了再fread
        nBytes = get(tcpclient,'BytesAvailable');
        if nBytes>0
            break;
        end
    end
    receive = fread(tcpclient,nBytes);%讀取tcp服務器傳來的數據
    %fread(t)
    %關閉連接
    fclose(tcpclient);
    data=str2num(char(receive(2:end-1)')); %將ASCII碼轉換為str,再將str轉換為數組
    disp(data)
%end
delete(tcpclient);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM