html页面自己写js脚本收发数据,支持串口和TCP通讯(二)TCP客户端收发

9 篇文章 0 订阅
7 篇文章 1 订阅

本工具作为TCP客户端,模拟终端与服务器进行通讯。
在这里插入图片描述

完整示例:

<body>
    <div>tcp测试客户端</div><br />
    <input type="text" id="txtServer" value="127.0.0.1" /><br />
    <input type="text" id="txtPort" value="60000" /><br />
    <button onclick="conn()">连接</button>
    <button onclick="close()">断开</button>
    <button onclick="sendData()">发送</button>
    <button onclick="recvData()">接收</button>
</body>
<script type="text/javascript">
    (async function () {
        await CefSharp.BindObjectAsync("tcpClientHelper");
        
    })();


    function conn() {
        (async function () {
            await CefSharp.BindObjectAsync("tcpClientHelper");
            var server = document.getElementById("txtServer").value;
            var port = document.getElementById("txtPort").value;
            console.log(server, port);
            await tcpClientHelper.conn(server, parseInt(port));

            //建立连接后发登录
            await tcpClientHelper.sendData("383635333734303530363031353933");

            setTimeout("recvData()", 1000);
        })();
    }

    function close() {
        (async function () {
            await CefSharp.BindObjectAsync("tcpClientHelper");

            await tcpClientHelper.close();
        })();
    }

    function sendData() {
        (async function () {
            await CefSharp.BindObjectAsync("tcpClientHelper");

            await tcpClientHelper.sendData("313233");

            console.log('sendData');
        })();
    }

    function recvData() {
        (async function () {
            await CefSharp.BindObjectAsync("tcpClientHelper");

            let recvString = await tcpClientHelper.recvData();
            console.log('[' + recvString+ ']');
            if (recvString.trim() == '680100010068FFFFFFFFFFFF010100CE16') {
                console.log('ok 31');
                await tcpClientHelper.sendData('68 03 00 03 00 68 FF FF FF FF FF FF 81 01 00 01 AA BB B8 16');
            }
            else if (recvString.trim() == '680100010068FFFFFFFFFFFF020000552316') {
                console.log('ok 32');
                await tcpClientHelper.sendData('68 01 00 01 00 68 FF FF FF FF FF FF 82 01 00 FF 4E 16');
            }

            setTimeout("recvData()", 1000);
        })();       
    }  
</script>

效果

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的 Python TCP 服务端与客户端脚本,可以循环收发消息: TCP 服务端脚本: ```python import socket SERVER_HOST = '0.0.0.0' SERVER_PORT = 8080 def handle_client(client_socket): while True: # 接收客户端消息 request = client_socket.recv(1024) if not request: break print(f'Received message: {request.decode()}') # 发送响应消息 response = f'You sent me: {request.decode()}'.encode() client_socket.send(response) # 关闭客户端连接 client_socket.close() # 创建 TCP 套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 绑定服务器地址和端口 server_socket.bind((SERVER_HOST, SERVER_PORT)) # 监听来自客户端的连接 server_socket.listen(1) print(f'Server listening on {SERVER_HOST}:{SERVER_PORT}') while True: # 等待客户端连接 client_socket, client_address = server_socket.accept() print(f'Client connected from {client_address[0]}:{client_address[1]}') # 处理客户端请求 handle_client(client_socket) ``` TCP 客户端脚本: ```python import socket SERVER_HOST = '127.0.0.1' SERVER_PORT = 8080 # 创建 TCP 套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 client_socket.connect((SERVER_HOST, SERVER_PORT)) print(f'Connected to {SERVER_HOST}:{SERVER_PORT}') while True: # 发送消息 message = input('> ') client_socket.send(message.encode()) # 接收响应消息 response = client_socket.recv(1024) print(f'Received response: {response.decode()}') ``` 使用时,先运行服务端脚本,再运行客户端脚本,即可在客户端输入消息并发送,服务端将会收到并打印消息,并返回响应消息给客户端客户端将会收到响应消息并打印。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹏展翅888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值