zoukankan      html  css  js  c++  java
  • TCP网络编程-----客户端请求连接服务器、向服务器发数据、从服务器接收数据、关闭连接

    SOCKET m_sockClient;

    unsigned short portNum;

    -----------------------------------------------------------------------------------------

    bool connect(unsigned short portNum);

    void DisConnectHost();

    short SendCmd(AnsiString sendData);
    short ReceiveData(AnsiString *recvData);

    -----------------------------------------------------------------------------------------

    bool connect(unsigned short portNum)

    {

        //加载套接字库
        WORD wVersionRequested;
        WSADATA wsaData;
        int err=0;

        wVersionRequested=MAKEWORD(1,1);

        err=WSAStartup(wVersionRequested,&wsaData);
        if(err!=0)
        {
            return false;
        }

        if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1)
        {

            WSACleanup();
            return false;
        }

        //创建套接字
        m_sockClient=socket(AF_INET,SOCK_STREAM,0);
        SOCKADDR_IN addrSrv;
        addrSrv.sin_addr.S_un.S_addr=inet_addr("192.168.3.230");
        addrSrv.sin_family=AF_INET;
        addrSrv.sin_port=htons(portNum);
            ///////////////////////////////////
        //向服务器发出连接请求
        err=connect(m_sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
        if(err!=0)
        {
            return false;
        }
        return true;

    }

    -----------------------------------------------------------------------------------------

    void DisConnectHost()

    {

       closesocket(m_sockClient); //close(m_sockClient);
        WSACleanup();

    }

    -----------------------------------------------------------------------------------------

    short SendCmd(AnsiString sendData)

    {

            int  sendLength=0;
            int len=sendData.Length();
        sendLength = send(m_sockClient,sendData.c_str(),len,0);
        if(sendLength!=len)
        {
            return NETERROR; 
        }

        return CMDOK;

    }

    -----------------------------------------------------------------------------------------
    short ReceiveData(AnsiString *recvData)

    {

     int recvLen=0;
        char p[256] = {0};
        recvLen = recv(m_sockClient,p,256,0);
        if(recvLen==SOCKET_ERROR)
        {
            return NETERROR;
        }
            recvData->sprintf("%s",p);
        return CMDOK;

    }

  • 相关阅读:
    window10使用vagrant+virtualBox搭建centos7
    吾日三思
    搭建EFK过程
    docker端口映射失效解决方法
    centos7防火墙相关命令
    docker学习
    python 读取hive数据
    shell 命令 查看本机ip
    shell 命令 修改hosts文件
    shell 命令 mkdir -p
  • 原文地址:https://www.cnblogs.com/azbane/p/8267069.html
Copyright © 2011-2022 走看看