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);

 

posted @ 2018-12-04 22:16  是卓越的卓  阅读(4934)  评论(0编辑  收藏  举报