Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次单击HTML和javascript上的按钮时,使用TCP向客户端发送一个值,其中每个按钮发送一个不同的值_Javascript_Html_Tcp - Fatal编程技术网

每次单击HTML和javascript上的按钮时,使用TCP向客户端发送一个值,其中每个按钮发送一个不同的值

每次单击HTML和javascript上的按钮时,使用TCP向客户端发送一个值,其中每个按钮发送一个不同的值,javascript,html,tcp,Javascript,Html,Tcp,我已经加入了我自己的项目,这样我就可以通过网络了解网络和应用程序。然而,我目前还停留在某一点上,还没有找到一个合适的答案。我通过TCP连接到远程设备。它正在监听,我想在每次按a、B或C时发送一个不同的整数值。我可以发送一个值,但只能发送一次,而且我也不知道如何更改它(它只发送我已经为其设置的值,例如32) 例如,我想发送131表示A,1118表示B,12819表示C。数字只是随机的,用于举例说明主题 <ul id="menu"> <li cl

我已经加入了我自己的项目,这样我就可以通过网络了解网络和应用程序。然而,我目前还停留在某一点上,还没有找到一个合适的答案。我通过TCP连接到远程设备。它正在监听,我想在每次按a、B或C时发送一个不同的整数值。我可以发送一个值,但只能发送一次,而且我也不知道如何更改它(它只发送我已经为其设置的值,例如32)

例如,我想发送131表示A,1118表示B,12819表示C。数字只是随机的,用于举例说明主题

<ul id="menu">
        <li class="parent"><a href="#">Encode Mode<span class="expand">&raquo;</span></a>
            <ul class="child">
            <li><a href="#" nowrap>A</a></li>
            <li><a href="#" nowrap>B</a></li>
            <li><a href="#" nowrap>C</a></li>
            </ul>
        </li>
</ul>
在html文件中,您可以使用三个不同的ID创建三个不同的按钮

<button id="btn1"></button>
<button id="btn2"></button>
<button id="btn3"></button>
其他两个按钮的值也相同

在服务器端js文件中,必须创建如下函数

myFunction(val) {

var buf = new Buffer(1024);
buf.writeInt32LE(val, 0); //max value to send 2147483647

// Assumes the connection is established
client.write(buf); //This will send the byte buffer over TCP
});
} 
例如,您还必须在路径上收听

app.post('/startMyFunction', (req, res) => {
    // read the parameter out of the request body
    const val = req.body.value
    // Call the function with this parameter
    myFunction(val);
 });
代码片段来自我的存储库,在那里你可以看到完整的代码

感谢您提供的解决方案,但我希望它能够正常工作而不被中断,而不仅仅是用于测试。你能不能也建议一个可能的解决方案?@mergen我已经更新了它,因为变量client在全局范围内,应该可以在函数中调用client.write(buf),假设连接是established@mergen你在这里用node吗?要在节点服务器上调用该函数,您应该了解fetchapi或async/waities,我正在使用node。仍然无法在节点服务器文件index.js中完成此操作。您需要创建一个Web服务器,然后从客户端html文件中侦听类似/blaFunction的路由。您必须调用此api才能在服务器上启动此函数。这可能是离题了,您是否已经使用过http服务器或express?
myFunction(val) {

var buf = new Buffer(1024);
buf.writeInt32LE(val, 0); //max value to send 2147483647

// Assumes the connection is established
client.write(buf); //This will send the byte buffer over TCP
});
} 
app.post('/startMyFunction', (req, res) => {
    // read the parameter out of the request body
    const val = req.body.value
    // Call the function with this parameter
    myFunction(val);
 });