Previous topicNext topic
Help > XEngine_Client > XClient_Socket > XClient_Socket > XClient_TCPClient >
XClient_TCPSelect_Create

函数

XClient_TCPSelect_Create

功能

创建一个客户端

语法

BOOL XClient_TCPSelect_Create(SOCKET * phSocket, LPCSTR lpszAddr, int nPort, int nTimeout = 0, LPCSTR lpszBindAddr = NULL, int nBindPort = 0, int nIPVer = 2)

参数

 参数.一:phSocket
  In/Out:Out
  类型:套接字句柄
  可空:N
  意思:创建成功的套接字
 参数.二:lpszAddr
  In/Out:In
  类型:常量字符指针
  可空:N
  意思:要连接到的服务器
 参数.三:nPort
  In/Out:In
  类型:整数型
  可空:N
  意思:要连接到的端口
 参数.四:nTimeout
  In/Out:In
  类型:整数型
  可空:Y
  意思:链接超时时间,单位秒
 参数.五:lpszBindAddr
  In/Out:In
  类型:常量字符指针
  可空:Y
  意思:输入要指定的网卡地址
 参数.六:nBindPort
  In/Out:In
  类型:常量字符指针
  可空:Y
  意思:输入要指定的端口
 参数.七:nIPVer
  In/Out:In
  类型:整数型
  可空:Y
  意思:要使用的IP版本

返回值

类型:逻辑型
意思:是否成功

备注

此模型套接字客户端 可以创建多个客户端,但是无安全属性,无线程管理,无多客户端自动管理

示例

int TCPTest()
{
    int nMsgLen = 10240;
    TCHAR tszSDBuffer[10000];
    TCHAR tszMsgBuffer[10240];

    memset(tszSDBuffer, '\0', sizeof(tszSDBuffer));

    SOCKET m_Socket;
    if (!XClient_TCPSelect_Create(&m_Socket, _T("127.0.0.1"), 5000))
    {
        printf(_T("连接失败!\n"));
        return -1;
    }
    memset(tszMsgBuffer, '\0', sizeof(tszMsgBuffer));

    XENGINE_PROTOCOLHDR st_ProtocolHdr;
    memset(&st_ProtocolHdr, '\0', sizeof(XENGINE_PROTOCOLHDR));

    st_ProtocolHdr.wHeader = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_HEADER;
    st_ProtocolHdr.xhToken = 0;
    st_ProtocolHdr.unOperatorType = ENUM_XENGINE_COMMUNICATION_PROTOCOL_TYPE_AUTH;
    st_ProtocolHdr.unOperatorCode = 0x2001;
    st_ProtocolHdr.unPacketSize = 0;
    st_ProtocolHdr.byVersion = 1;
    st_ProtocolHdr.byIsReply = TRUE;
    st_ProtocolHdr.wReserve = 0;
    st_ProtocolHdr.wPacketSerial = 0;
    st_ProtocolHdr.wTail = XENGIEN_COMMUNICATION_PACKET_PROTOCOL_TAIL;
    if (XClient_TCPSelect_SendMsg(m_Socket, (LPCTSTR)&st_ProtocolHdr, sizeof(XENGINE_PROTOCOLHDR)))
    {
        printf("NetClient_TCPSelect_SendMsg:%d\n", nMsgLen);
    }
    if (XClient_TCPSelect_SendMsg(m_Socket, "123", 3))
    {
        printf("NetClient_TCPSelect_SendMsg:123\n");
    }
    XClient_TCPSelect_Close(m_Socket);
    return 1;
}