如何停止客户端向服务器发送消息

how to stop client sending messages to server?

本文关键字:消息 服务器 何停止 客户端      更新时间:2023-10-16

我想在mfc中创建一个客户端服务器程序,我从这个网站找到了一些非常好的源代码:http://www.softwareandfinance.com/Visual_CPP/TCP_Client_Server.html

但是在这个程序中,客户端向服务器发送消息,然后服务器显示客户端的IP地址,端口号,时间,日期和消息。

我不希望客户端发送消息。当客户端单击按钮时,我只想让它连接到服务器。它不需要做任何其他事情。我尝试删除发送消息的代码,但这会导致大量编译错误。

下面是一些来自客户端的代码:
   char sbuf[1024], rbuf[1024];
    UpdateData(TRUE);
    sprintf(sbuf,"%srn", (const char*) m_senddata);
    if(send(s, sbuf, strlen(sbuf), 0) == strlen(sbuf))
    {
        recv(s, rbuf, 1024, 0);
        m_recvData = rbuf;
        UpdateData(FALSE);
    }
    ::closesocket(s);
下面是一些来自服务器的代码:
        char rbuf[1024];
        recv(clientsocket, rbuf, 1024, 0);
        for(int i = 1024; i >= 1; i--)
        {
            if(rbuf[i] == 'n' && rbuf[i - 1] == 'r')
            {
                rbuf[i-1] = '';
                break;
            }
        }
        CString strRecvData;
        strRecvData.Format("%srn%s %drn%srnrn", (const char*)CTime::GetCurrentTime().Format("%B %d, %Y %H:%M:%S"), p, portno, rbuf);
        m_recvData += strRecvData;
        m_bRefershData = true;
        strcat(rbuf, "rn");
        send(clientsocket, rbuf, 1024, 0);
        closesocket(clientsocket);
    enter code here

我可以张贴其余的函数,如果有人想要他们

你能提供你得到的编译器错误吗?

为了连接到服务器,您只需使用socket()函数创建套接字,获取套接字处理程序并将其传递给connect()函数。

在客户端应该是这样的:

SOCKET getNewSocket() {
    SOCKET client = socket(AF_INET, SOCK_STREAM, 0);
    if (client == INVALID_SOCKET) {
        return NULL;
    }
    char host[15];
    strcpy(host, "127.0.0.1");
    int port = 80;
    sockaddr_in addr;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(port);
    if (inet_addr(host) == INADDR_NONE) {
        closesocket(client);
        return NULL;
    }
    addr.sin_addr.s_addr = inet_addr(host);
    if (connect(client, (sockaddr*)&addr, sizeof(addr))) {
        closesocket(client);
        return NULL;
    }
    return client;
}