TCP网络编程-----客户端请求连接服务器向服务器发数据从服务器接收数据关闭连接

Posted 我是张洪铭我是熊博士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

}





















































以上是关于TCP网络编程-----客户端请求连接服务器向服务器发数据从服务器接收数据关闭连接的主要内容,如果未能解决你的问题,请参考以下文章

网络编程 TCP协议:三次握手,四次回收,反馈机制 socket套接字通信 粘包问题与解决方法

java 网络编程 TCP协议 java 服务器和客户端 java socket编程

socket网络编程:传输层详解(TCP / UDP)

python-网络编程

python-网络编程

TCP协议与TCP通信