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;

    }

  • 相关阅读:
    nginx实现请求的负载均衡 + Keep Alive实现nginx的高可用
    理解什么是JWT(Json web token)及Python实现
    TCP/UDP协议到底是什么
    Redis实现分布式单点登录
    Python面试题---给定一个字符串 {xxx[xxx{xxx}]xx{x[xxx]xxx{xxx}xx}x} 判断其中的 {}[]() 是否成对出现
    Typora里面如何快捷改变字体颜色?
    基于Docker安装关系型数据库PostgrelSQL替代Mysql
    PEP8-Python编码规范
    欢迎来到我的友链小屋
    windows下lib和dll区别
  • 原文地址:https://www.cnblogs.com/azbane/p/8267069.html
Copyright © 2011-2022 走看看