2013-03-15 196 views
0

我想在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 

,如果有人想他们

回答

1

我可以张贴的其余功能你能提供你得到的那些编译器错误吗?

为了连接到服务器,您只需使用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; 
} 
+0

是的,我有一些代码。你想看看其余的代码? – Karen123456 2013-03-15 10:48:43

+0

我得到的错误是一个对话框,当我点击客户端上说按钮TODO:已停止工作时,出现一个对话框 – Karen123456 2013-03-15 10:53:06

+0

您可以使用调试器来确定哪条线完全崩溃吗?还有一个问题。你打电话给[WSAStartup()](http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms742213)函数吗?在Windows中使用套接字函数之前,需要调用它。 – Aurora 2013-03-15 11:02:15

相关问题