我想在MFC中創建 客戶端服務器程序,我發現本網站的一些很好的源代碼:http://www.softwareandfinance.com/Visual_CPP/TCP_Client_Server.html如何在列表框中顯示信息而不是編輯框?
確定有人可以幫助我顯示一個列表框,而不是編輯框中的信息?
這裏來處理客戶端的代碼:
static void f(void *p)
{
CSocketTestServerDlg *pDlg = reinterpret_cast<CSocketTestServerDlg*>(p);
pDlg->ProcessClientRequest();
}
void CSocketTestServerDlg::ProcessClientRequest()
{
SOCKADDR_IN clientaddr;
struct hostent *hostentry;
int len = sizeof(clientaddr);
SOCKET clientsocket = accept(m_serversocket, (sockaddr*)&clientaddr, &len);
if(len == -1)
{
AfxMessageBox("Error accpeting the client socket");
}
else
{
char *p = inet_ntoa(clientaddr.sin_addr);
int portno = ntohs(clientaddr.sin_port);
// int inet_pton(int af, const char *restrict src, void *restrict dst);
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);
}
}
憑什麼我剛剛從客戶端獲取IP地址在列表框中顯示?我不需要所有其他信息
問題是什麼?如何在ListBox上顯示信息或如何獲取IP地址? – MikMik 2013-03-15 11:03:16
我只是想要在列表框中顯示的IP地址。我不想要所有其他信息 – Karen123456 2013-03-15 11:12:21
是不是'clientaddr.sin_addr'中的IP地址?我沒有使用套接字,但這是我從[這裏](http://msdn.microsoft.com/es-es/library/zx63b042(v = vs.80).aspx) – MikMik 2013-03-15 11:22:32