服务器端代码:
- * 关闭错误显示
- 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)
复制代码 客户端代码:
- * 关闭错误显示
- dev_set_check ('~give_error')
- * 参数设置
- Protocol := 'TCP4'
- Timeout := 3.0
- * 打开SOCKET 仅用于接连接服务端
- open_socket_connect ('localhost', 7080,['protocol','timeout'], [Protocol,Timeout], Socket)
- * 获取客户端地址和端口信息
- 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)
复制代码
|