halcon10版本的是这样,个别的运算符号不一样
- * 关闭错误显示
- dev_set_check ('~give_error')
- * 参数设置
- Protocol := 'TCP4'
- Timeout := 3.0
- * 打开SOCKET 仅用于接受客户端连接
- open_socket_accept (7080, ['protocol','timeout'], [Protocol,Timeout], AcceptingSocket)
- * 判断协议
- tuple_regexp_match (Protocol, 'TCP|HALCON', BaseProtocol)
- if (BaseProtocol = 'TCP' or BaseProtocol = 'HALCON')
- dev_error_var (Error, 1)
- OpenStatus := 5
- * 等待客户端连接
- while (OpenStatus # 2)
- socket_accept_connect (AcceptingSocket, 'auto', Socket)
- OpenStatus := Error
- endwhile
-
- * 为当前连接的客户端创建新socket 用于通讯
- set_socket_param (Socket, 'timeout', Timeout)
- else
- *
- * UDP sockets 不需要 accept()方法
- Socket := AcceptingSocket
- endif
- * 获取客户端地址和端口信息
- get_socket_param (Socket, 'address_info', Address)
- * 获取对方IP和端口信息
- if(|Address|=4)
- To:=[]
- To:= [Address[2],Address[3]]
- endif
- Answer := []
- * 数据通讯 发送End字符串结束监听
- while (Answer # 'End')
- Format := 'z'
- * 获取客户度发送的消息
- receive_data (Socket, Format, Answer, From)
- if (|Answer|>0)
- Data:='Recv:'+Answer
- send_data (Socket, Format, Data, To)
- endif
-
- endwhile
- close_socket (Socket)
- close_socket (AcceptingSocket)
复制代码 |