EC机器人TCPIP通讯(通讯助手)
1. 简介
本文简单介绍EC机器人通过【tōng guò】Socket通讯与【tōng xùn yǔ】🛅通讯助🦁手连接🏞进行测试【shì】。
2. 操作流程
1、首先在【shǒu xiān zài】电脑上🤒准备(SocketTool)通讯助🏣手工具【shǒu gōng jù】

2、然后电脑与【nǎo yǔ】EC机器人【jī qì rén】通过网【tōng guò wǎng】🥍线相连🔃接🎹,设置为同一网段
电脑IPV4设置:

机器人IP设置


3、 机器人【jī qì rén】运行加载📧Socket通讯【tōng xùn】lua脚本🍄

选择写【xuǎn zé xiě】好的💅lua脚本保【jiǎo běn bǎo】存并运【cún bìng yùn】行【háng】😚,当后面状态为🌦绿色时就是脚本已运✡行【háng】😚

3. 示例
3.1. EC机器人【jī qì rén】🧞做客户【zuò kè hù】端连接👃服务器
Socket Tool 工具做【gōng jù zuò】📭服务器设置【shè zhì】🔎,端口为6666

机器人做客户端lua脚本
3.1.1、连接服务器,接收和发送数据
lua脚本示例:
sleep(0.2)
ip="192.168.1.169" --服务器🐞的【de】IP
port=6666 --服务器【fú wù qì】⛹的端口
mode="D2" --获取机【huò qǔ jī】🍢器人D2变量的值【zhí】❌
--连接服务器--
function Connection()
repeat ---repeat循环【xún huán】🔧,until条件满足跳出【zú tiào chū】循环【xún huán】🔧
conn = connect_tcp_server(ip,port) --连接【lián jiē】TCP语句📀
if conn ~=1 then ---判断是【pàn duàn shì】否连接【fǒu lián jiē】📷上去【qù】🎽,连接上去【qù】🎽返回🔴1,失败返回🔴-1
elite_print("TCP连接失败【bài】,重连中",conn)---失败后【shī bài hòu】先断开❇连接一【lián jiē yī】📴次🍍
disconnect_tcp_server(ip,port)
sleep(0.1)
end
until conn==1
elite_print("TCP连接成【lián jiē chéng】😳功")
end
Connection()--连接服务器
---接收数据---
while true do
mode1=get_global_variable(mode) ---获取机【huò qǔ jī】📚器人👀mode(D2)里面的值【zhí】
sleep(0.1)
if mode1==2 then
repeat
---接收数据📱,ret判断得【pàn duàn dé】到的是返回的【fǎn huí de】结果【jié guǒ】👮-1还是其他👡,recv里保存的是获取的值【qǔ de zhí】✖
ret,recv =client_recv_data(ip,0.1,0,port)
elite_print(recv) --打印出来接收【lái jiē shōu】到的内👅容【róng】🉐
sleep (1)
until (ret~=-1)
sleep(0.01)
set_global_variable(mode,0) --复位机【fù wèi jī】器人D2的值为🔻0
end
---发送数据---
if mode1==3 then
ret = client_send_data(ip,"OK",0,port) --发送数🌬据给服【jù gěi fú】务器
if ret ==-1 then
elite_print("发送数🔶据错误【jù cuò wù】")
end
sleep(0.02)
set_global_variable(mode,0) --复位机【fù wèi jī】器人D2的值为🥅0
end
end
连接服⛱务器时,当机器【dāng jī qì】人未连接会在❤日志上一直打【yī zhí dǎ】印内容【yìn nèi róng】🈴

连接上去后也会打印一次

机器人🔵触发接收数据【jù】🥐后【hòu】🍉,服务器发送数【fā sòng shù】🛸据【jù】,会在日【huì zài rì】志上显示接收到的数据【jù】,之后【hòu】🍉就可按需【xū】👘求来使【qiú lái shǐ】用。


机器人【jī qì rén】触发发🥤送数据🐢后【hòu】,会给服🆓务器发送设定的字符【de zì fú】🌓串,服务器会显示接收到【jiē shōu dào】的数据

3.2. EC机器人【jī qì rén】做服务【zuò fú wù】🔩器连接客户端💜
通讯助手做客户端设置

机器人做服务器lua脚本
3.2.1、初始化【chū shǐ huà】😐TCP服务器🦒,向客户端【kè hù duān】发送🏈和接收【hé jiē shōu】客户端【kè hù duān】的数据
lua脚本示例:
sleep(1) -- 等待【děng dài】1秒🏰
port = 6666 -- 设置服务器端口【kǒu】🦂
ip ="192.168.1.169" -- 设置客🏅户端【hù duān】IP地址
init_tcp_server(port) -- 初始化【chū shǐ huà】📟TCP服务器
while(1)do -- 无限循♍环【huán】
ret=is_client_connected(ip) -- 检查客户端是【hù duān shì】🥈否连接
if(ret==1)then -- 如果客🗣户端已连接【lián jiē】
elite_print("客户端已连接【yǐ lián jiē】😁")
server_send_data(ip,"1") -- 向客户【xiàng kè hù】端发送😬数据"1"
recv="1"
while(recv ~= "2") do
sleep(1) -- 等待👨1秒【miǎo】
Ret,recv=server_recv_data(ip,0,port,0.5) -- 接收客🥏户端数【hù duān shù】据
elite_print(recv,Ret) -- 打印接🈳收到的【shōu dào de】数据和【shù jù hé】状态😸
end
else
elite_print("客户端【kè hù duān】🥁未连接")
end
end
客户端【kè hù duān】😀未连接和连接上都是【shàng dōu shì】在日志上打印🍪信息【xìn xī】🤺

连接上后🔛,机器人【jī qì rén】会发送🚠字符串🏎“1”给客户端【duān】🥍,通讯助【tōng xùn zhù】手上接收到数据【jù】
客户端发送字🌦符串“2”给机器🥊人【rén】,机器人【jī qì rén】接收到🕒数据把数据和⛽接收到🕒的数量【de shù liàng】打印出【dǎ yìn chū】来


3.3.数据处理
在做服务器与【wù qì yǔ】客户端【kè hù duān】时都会碰到接收的【de】数🆕据是字🔤符串,在脚本🌏中无法👄直接使用🕝,这时就需用【xū yòng】🕝到字符【dào zì fú】串分割的【de】😠功能【gōng néng】。

字符串【zì fú chuàn】🥑分割【gē】🌗可以把【kě yǐ bǎ】接收到的字符串【zì fú chuàn】🥑根据定【gēn jù dìng】🌠义的字【yì de zì】符来分割【gē】🌗,返回一😮个数组供我们使用。
下面就是一个【shì yī gè】👞示例把接收到🌔的字符【de zì fú】🔓串通过","进行分割【gē】。
recv1=string.split(recv,",")