Halcon TCP 服务端接收命令
* 1.创建服务端 ****************************************
* 协议
Protocol :=
* 端口
Port := 5321
* 超时
Timeout := 1.0
* 打开TCP服务端
open_socket_accept (Port, [
[Protocol,Timeout], AcceptingSocket)
* 2.循环接受客户端链接 ****************************************
tuple_regexp_match (Protocol,
if (BaseProtocol ==
dev_error_var (Error, 1)
dev_set_check (
OpenStatus := 5
* 循环等待客户端链接
while (OpenStatus
socket_accept_connect (AcceptingSocket,
OpenStatus := Error
endwhile
dev_set_check (
* 设置参数--超时
set_socket_param (Socket,
else
Socket := AcceptingSocket
endif
* 获取TCP连接的信息
get_socket_param (Socket,
* 历史数据
data_hst := []
* 当前接受的数据
Answer := []
* 3.循环获取接收 客户端发送的数据 ****************************************
while (Answer
* 接收数据
try
Format:=[
receive_data (Socket, Format, Answer, From)
catch (Exception)
endtry
* 数据 是否为空
recv_len := |Answer|
if(recv_len == 0)
continue
endif
* json_to_dict (Answer, [], [], DictHandle)
* 4.返回接受到的数据 ****************************************
if (From[1] == 0)
Data :=
else
Data :=
endif
* 返回的IP地址与端口
To := [From[0],From[1]]
Format :=
* 发送回复命令
send_data (Socket, Format, Data, To)
* 保存历史命令
data_hst := [data_hst, Answer]
Answer := []
endwhile