EC机器人TCPIP通讯(通讯助手)
1. 简介
本文简🛰单介绍EC机器人通过Socket通讯与通讯助🐴手连接【shǒu lián jiē】💫进行测【jìn háng cè】试【shì】。
2. 操作流程
1、首先在电脑上【diàn nǎo shàng】准备【zhǔn bèi】⛔(SocketTool)通讯助手工具💇

2、然后电脑与🥁EC机器人通过网💽线相连【xiàn xiàng lián】接📞,设置为【shè zhì wéi】同一网【tóng yī wǎng】段
电脑IPV4设置:

机器人IP设置


3、 机器人🚏运行加【yùn háng jiā】载Socket通讯【tōng xùn】lua脚本✌

选择写好的【hǎo de】lua脚本保【jiǎo běn bǎo】存并运🤽行【háng】⚓,当后面状态为【zhuàng tài wéi】🎁绿色时就是脚本已运❄行【háng】⚓

3. 示例
3.1. EC机器人📵做客户端连接【duān lián jiē】📱服务器【fú wù qì】
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ī】器人【qì rén】🔠D2变量的🐰值
--连接服务器--
function Connection()
repeat ---repeat循环【xún huán】📨,until条件满🛡足跳出【zú tiào chū】循环【xún huán】📨
conn = connect_tcp_server(ip,port) --连接TCP语句【yǔ jù】💯
if conn ~=1 then ---判断是💲否连接【fǒu lián jiē】上💻去,连接上【lián jiē shàng】💻去返回【qù fǎn huí】1,失败返回-1
elite_print("TCP连接失败,重连中🖋",conn)---失败后【shī bài hòu】❌先断开💍连接一【lián jiē yī】次【cì】
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) ---获取机器人【qì rén】📶mode(D2)里面的值【zhí】🥝
sleep(0.1)
if mode1==2 then
repeat
---接收数据【jù】,ret判断得🤫到的是【dào de shì】返回的🥨结果-1还是其他💟,recv里保存【lǐ bǎo cún】的是获⛅取的值【qǔ de zhí】
ret,recv =client_recv_data(ip,0.1,0,port)
elite_print(recv) --打印出【dǎ yìn chū】🕰来接收到的内🎃容【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) --复位机器人🍗D2的值为【de zhí wéi】0
end
end
连接服【lián jiē fú】😤务器时【wù qì shí】,当机器🧙人未连接会在日志上【rì zhì shàng】🌯一直打印内容

连接上去后也会打印一次

机器人【jī qì rén】🤹触发接收数据【jù】🖋后🏥,服务器发送数据【jù】🖋,会在日【huì zài rì】📞志上显【zhì shàng xiǎn】示接收【shì jiē shōu】到的数据【jù】🖋,之后🏥就可按需求来使用🌅。


机器人🆚触发发送数据【sòng shù jù】后【hòu】,会给服务器🤝发送设【fā sòng shè】定的字符😻串【chuàn】,服务器🤝会显示接收到😤的数据【de shù jù】

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

机器人做服务器lua脚本
3.2.1、初始化🌀TCP服务器,向客户⏫端发送【duān fā sòng】🚌和接收【hé jiē shōu】客户端的数据【de shù jù】
lua脚本示例:
sleep(1) -- 等待1秒【miǎo】🔞
port = 6666 -- 设置服【shè zhì fú】🛎务器端口
ip ="192.168.1.169" -- 设置客户端IP地址【dì zhǐ】📇
init_tcp_server(port) -- 初始化TCP服务器【fú wù qì】➡
while(1)do -- 无限循【wú xiàn xún】环🌌
ret=is_client_connected(ip) -- 检查客户端是否连接【fǒu lián jiē】💢
if(ret==1)then -- 如果客【rú guǒ kè】😱户端已连接
elite_print("客户端【kè hù duān】🌿已连接")
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) -- 接收客【jiē shōu kè】户端数据💀
elite_print(recv,Ret) -- 打印接【dǎ yìn jiē】📔收到的【shōu dào de】😪数据和状态
end
else
elite_print("客户端未连接【wèi lián jiē】🍗")
end
end
客户端🌴未连接和连接上都是😎在日志【zài rì zhì】上打印【shàng dǎ yìn】⌚信息【xìn xī】

连接上后【hòu】,机器人会发送字符串【zì fú chuàn】“1”给客户🎈端【duān】👽,通讯助📑手上接【shǒu shàng jiē】收到数据⛰
客户端发送字符串【fú chuàn】🎭“2”给机器💄人🖇,机器人🖇接收到【jiē shōu dào】数据把数据和🐤接收到【jiē shōu dào】的数量【de shù liàng】打印出来


3.3.数据处理
在做服务器与【wù qì yǔ】客户端时都会碰到接🐭收的数🙆据是字【jù shì zì】👂符串【fú chuàn】,在脚本中无法【zhōng wú fǎ】直接使用【yòng】🚠,这时就🔩需用【yòng】🚠到字符串【fú chuàn】分割的🌋功能。

字符串【zì fú chuàn】🐂分割可以把接🤥收到的字符串【zì fú chuàn】🐂根据定【gēn jù dìng】🚩义的字符来分【fú lái fèn】😜割,返回一个数组供我们使用【shǐ yòng】。
下面就【xià miàn jiù】🏟是一个示例把【shì lì bǎ】接收到🦇的字符串通过【chuàn tōng guò】","进行分割🏄。
recv1=string.split(recv,",")