如何阻止客户端向服务器发送消息?
问题描述:
我想在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;
}
是的,我有一些代码。你想看看其余的代码? – Karen123456 2013-03-15 10:48:43
我得到的错误是一个对话框,当我点击客户端上说按钮TODO:已停止工作时,出现一个对话框 –
Karen123456
2013-03-15 10:53:06
您可以使用调试器来确定哪条线完全崩溃吗?还有一个问题。你打电话给[WSAStartup()](http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms742213)函数吗?在Windows中使用套接字函数之前,需要调用它。 – Aurora 2013-03-15 11:02:15