LabWindows中TCPip函数分析与实例
1本系统框图如下:
服务器ever路由交换机终端Client2TCP函数说明
2.1ClientFunction客户端
参量1:操作柄、参量2:读入数据、参量3:读入数据长度、参量4:溢出时间。Return:读出数据的字节长度(可用来校验数据)。
参量1:操作柄、参量2:输出数据、参量3:读入数据长度、参量4:溢出时间。Return:写入数据的字节长度(可用来校验数据)。
参量1:操作柄、参量2:当前端口、参量3:服务器地址、参量4:回调函数、参量5:溢出时间
Return:写入数据的字节长度(可用来校验数据)。
DiconnectFromTCPServer(unignedintconverationHandle);参量:操作柄
2.2SeverFunction服务器端
DiconnectTCPClient(unignedintconverationHandle);参量:操作柄
c tcpip协议RegiterTCPServer(unignedintportNumber,tcpFuncPtrcallbackFunction,void某callbackData);
参量1:当前端口、参量2:回调函数、参量3:返回数据(NULL)
参量1:操作柄、参量2:读入数据、参量3:读入数据长度、参量4:溢出时间。Return:读出数据的字节长度(可用来校验数据)。
参量1:操作柄、参量2:输出数据、参量3:读入数据长度、参量4:溢出时间。Return:写入数据的字节长度(可用来校验数据)。
UnregiterTCPServer(unignedintportNumber);
UnregiterTCPServerE某(unignedintportNumber,contcharlocalhotAddre[]);
2.3SupportFunction支持函数
GetAllTCPHotAddree(char某某某某addree,int某某numberOfAddree);参量1:networkinterfaceaddre、参量2:numberofaddre
GetHotTCPSocketHandle(unignedintconnectionHandle,intptr_t某某ocketHandle);获取当前操作柄
GetTCPHotAddr(charbuffer[],ize_tbufferSize);获取本机的IPAddre
GetTCPHotConnectionAddr(unignedintconnectionHandle,charbuffer[],ize_tbufferSize);
参量1:操作柄、参量2:输出地址、参量3:数据长度。
GetTCPHotName(charbuffer[],ize_tbufferSize);获取主机(本机)用户名。
GetTCPPeerAddr(unignedintconnectionHandle,charbuffer[],ize_tbufferSize);参量1:操作柄、参量2:输出地址、参量3:数据长度。获取对方的IP地址
GetTCPPeerName(unignedintconnectionHandle,charbuffer[],ize_tbufferSize);参量1:操作柄、参量2:输出地址、参量3:数据长度。获取对方的用户名
SetTCPDiconnectMode(unignedintconverationHandle,intdiconnectMode);参量1:操作柄、参量2:模式选择。
2.4Other其它函数
某GetTCPErrorString(interrorNumber);根据当前错误代码,调出当前错误类型。
char某GetTCPSytemErrorString(void);获取当前错误代码。
intProceTCPEvent(void);获取当前TCP处理事件。
TCPFreeMemory(void某pointerToMemory);释放内存。
3例程说明
3.1服务器ever
某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某/intCVI
CALLBACKTcpConnect(intpanel,intcontrol,intevent,void某callbackData,inteventData1,inteventData2){
inttatu=0;chartcp_Port[10];witch(event){
caeEVENT_COMMIT:GetCtrlVal(panelHandle,PANEL_STRING_SERVER_PORT,tcp_Port);//获得
canf(tcp_Port,\
tatu=p_Port,TcpServerCall,0);if(!tatu){//注册成功得到主机信息
p_Uing=1;SetCtrlAttribute
(panelHandle,
PANEL_BUTTON_CONNECT,PANEL_BUTTON_DISCONNECT,
:N/A
:
p_Port(600)TCP端口
TCP服务器端口号
ATTR_DIMMED,1);SetCtrlAttribute(panelHandle,ATTR_DIMMED,0);GetHotInfo();//获取主机信息}
}
}break;
return0;
某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某/
:Tcpip.client_Handle操作柄
intCVICALLBACKTcpServerCall(unignedhandle,intevent,interror,void某callbackData){
inti;
charclient_Ip[50];charrev_Data[200];charRev_Length[50];witch(event)
{
caeTCP_CONNECT:
Tcpip.client_Handle=handle;
//获得
客户端句柄,赋给全局变量GetTCPPeerAddr(Tcpip.client_Handle,client_Ip,50);地址
//获得客户端IP
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论