gpt4 book ai didi

c++ - 如何阻止客户端向服务器发送消息?

转载 作者:行者123 更新时间:2023-11-28 07:43:08 25 4
gpt4 key购买 nike

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

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

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

这里是一些来自客户的代码:

   char sbuf[1024], rbuf[1024];
UpdateData(TRUE);
sprintf(sbuf,"%s\r\n", (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] = '\0';
break;
}
}
CString strRecvData;

strRecvData.Format("%s\r\n%s %d\r\n%s\r\n\r\n", (const char*)CTime::GetCurrentTime().Format("%B %d, %Y %H:%M:%S"), p, portno, rbuf);
m_recvData += strRecvData;
m_bRefershData = true;
strcat(rbuf, "\r\n");
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;
}

关于c++ - 如何阻止客户端向服务器发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com