LabWindows中TCPip函数分析与实例

更新时间:2023-05-24 23:32:33 阅读: 评论:0

LabWindows CVI TCP程序说明
1 本系统框图如下:
2 TCP函数说明
2.1 Client Functions客户端
ClientTCPRead (unsigned int conversationHandle, void *dataBuffer, size_t dataSize, unsigned int timeOut);
参量1:操作柄、参量2:读入数据、参量3:读入数据长度、参量4:溢出时间。
Return:读出数据的字节长度(可用来校验数据)。
田建明
ClientTCPWrite (unsigned int conversationHandle, void *dataPointer, size_t dataSize, unsigned int timeOut);
参量1:操作柄、参量2:输出数据、参量3:读入数据长度、参量4:溢出时间。
Return:写入数据的字节长度(可用来校验数据)。
ConnectToTCPServer (unsigned int **conversationHandle, unsigned int portNumber, char rverHostName[], tcpFuncPtr callbackFunction, void *callbackData, unsigned int timeOut);
参量1:操作柄、参量2:当前端口、参量3:服务器地址、参量4:回调函数、参量5:溢出时间
Return:写入数据的字节长度(可用来校验数据)。
DisconnectFromTCPServer (unsigned int conversationHandle);
参量:操作柄
2.2 Sever Functions服务器端
DisconnectTCPClient (unsigned int conversationHandle);
参量:操作柄
RegisterTCPServer (unsigned int portNumber, tcpFuncPtr callbackFunction, void *callbackData);
参量1:当前端口、参量2:回调函数、参量3:返回数据(NULL)
ServerTCPRead (unsigned int conversationHandle, void *dataBuffer, size_t dataSize, unsigned int timeOut);
参量1:操作柄、参量2:读入数据、参量3:读入数据长度、参量4:溢出时间。
Return:读出数据的字节长度(可用来校验数据)。
ServerTCPWrite (unsigned int conversationHandle, void *dataPointer, size_t dataSize, unsigned int timeOut);
参量1:操作柄、参量2:输出数据、参量3:读入数据长度、参量4:溢出时间。
Return:写入数据的字节长度(可用来校验数据)。
UnregisterTCPServer (unsigned int portNumber);
UnregisterTCPServerEx (unsigned int portNumber, const char localhostAddress[]);
2.3 Support Functions 支持函数
GetAllTCPHostAddress (char ****address, int **numberOfAddress);
参量1:network interface address、参量2:number of address
GetHostTCPSocketHandle (unsigned int connectionHandle, intptr_t **socketHandle);
获取当前操作柄
GetTCPHostAddr (char buffer[], size_t bufferSize);给领导送购物卡的忌讳
获取本机的IP Address
GetTCPHostConnectionAddr (unsigned int connectionHandle, char buffer[], size_t bufferSize);
参量1:操作柄、参量2:输出地址、参量3:数据长度。
GetTCPHostName (char buffer[], size_t bufferSize);
获取主机(本机)用户名。
GetTCPPeerAddr (unsigned int connectionHandle, char buffer[], size_t bufferSize);
参量1:操作柄、参量2:输出地址、参量3:数据长度。
获取对方的IP地址
GetTCPPeerName (unsigned int connectionHandle, char buffer[], size_t bufferSize);
参量1:操作柄、参量2:输出地址、参量3:数据长度。
获取对方的用户名
郭沫若历史剧
SetTCPDisconnectMode (unsigned int conversationHandle, int disconnectMode);
参量1:操作柄、参量2:模式选择。
2.4 Other 其它函数
*GetTCPErrorString (int errorNumber);
根据当前错误代码,调出当前错误类型。
char *GetTCPSystemErrorString (void);
获取当前错误代码。
int ProcessTCPEvents (void);
获取当前TCP处理事件。
TCPFreeMemory (void *pointerToMemory);
释放内存。
3 例程说明
3.1 服务器ver
/****************************************************************************
>>>function :TcpConnect连接  TcpDisconnect断开
>>>intput    :N/A 
>>>output    :p_Port(600) TCP端口
>>>
*****************************************************************************/       
int CVICALLBACK TcpConnect (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    int status=0;
    char tcp_Port[10];
    switch (event)
    {
        ca EVENT_COMMIT:
            GetCtrlVal (panelHandle, PANEL_STRING_SERVER_PORT, tcp_Port);// 获得TCP服务器端口号
            sscanf(tcp_Port, "%u", &p_Port);
            status = RegisterTCPServer (p_Port, TcpServerCall, 0);
            if(!status){      //注册成功  得到主机信息
                p_Using=1;
                SetCtrlAttribute (panelHandle, PANEL_BUTTON_CONNECT, ATTR_DIMMED, 1);
                SetCtrlAttribute (panelHandle, PANEL_BUTTON_DISCONNECT, ATTR_DIMMED, 0);
什么是博客
                GetHostInfo();//获取主机信息
            }
            break;
    }
    return 0;
}
/****************************************************************************
你负责貌美如花
>>>function :TcpServerCall TCP接收数据处理部分(主机)
>>>intput    :Tcpip.client_Handle操作柄
>>>output    :
>>>
*****************************************************************************/       
int CVICALLBACK TcpServerCall(unsigned handle, int event, int error,
                            void *callbackData)
{
    int i;
    char client_Ip[50];
    char rev_Data[200];
    char Rev_Length[50];
    switch (event)
打糯米糍粑
        {
        ca TCP_CONNECT:
            Tcpip.client_Handle = handle;                                    // 获得客户端句柄,赋给全局变量
            GetTCPPeerAddr (Tcpip.client_Handle, client_Ip, 50);            // 获得客户端 IP 地址
            SetCtrlVal (panelHandle, PANEL_STRING_CLIENT_IP, client_Ip);
                                                                            // Client led亮为绿色
            SetCtrlAttribute (panelHandle, PANEL_LED_CLIENT, ATTR_ON_COLOR, VAL_GREEN);
必须跨过这道坎
            SetCtrlVal (panelHandle, PANEL_LED_CLIENT, 1);                    // Client led亮
                                                                            // 设置 TCP 断开方式为自动
            SetTCPDisconnectMode (Tcpip.client_Handle, TCP_DISCONNECT_AUTO);
山茶花作文

本文发布于:2023-05-24 23:32:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/764047.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:参量   数据   获取   长度
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图