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;

    }

  • 相关阅读:
    spring框架里面处理中文匹配
    日常问题记录--使用fiddler自动响应jsonp结构的响应
    linux命令--pamp
    每天一个linux命令--nice命令
    阿里RAP+fiddler实现app原生应用的cgi数据mock----- (二)添加mock规则,随机返回4中类型(不同长度)的数据
    父子组件之间传递数据
    redux-API(二)
    redux数据流
    Redux 的基础概念-API
    react-redux要点梳理
  • 原文地址:https://www.cnblogs.com/azbane/p/8267069.html
Copyright © 2011-2022 走看看