[問題] 一個socket+class的語法
class CClientSocket : public CSocket
{
private:
char *pClientIP;
u_short clientPort;
public:
CClientSocket(CServerDlg *pServDlg);
virtual ~CClientSocket();
void setSourse(char *ip,u_short port);
char getIP();
u_short getPort();
};
void CClientSocket::setSourse(char *ip,u_short port)
{
*pClientIP=*ip;
clientPort=port;
}
char CClientSocket::getIP()
{
return *pClientIP;
}
u_short CClientSocket::getPort()
{
return clientPort;
}
我想寫一個可以在送訊息的時候 同時顯示ip跟port
可是現在有個問題就是
void CServerDlg::ProcessPendingAccept()
{
//建立一個客戶端Socket物件
CClientSocket *pClientSocket = new CClientSocket(this);
SOCKADDR_IN clientAddr;
char *pClientIP = inet_ntoa(clientAddr.sin_addr);
u_short clientPort = ntohs(clientAddr.sin_port);
int socketLen = sizeof(SOCKADDR_IN);
m_pListenSocket->Accept(*pClientSocket,(SOCKADDR*)&clientAddr, &socketLen);//接受客戶端的連接
//記錄ip跟port
*pClientSocket->setSourse(*pClientIP,clientPort);
//將客戶端Socket加入list
EnterCriticalSection(&m_cs);
m_listClientSocket.push_back(pClientSocket);
LeaveCriticalSection(&m_cs);
}
就是我在執行以上的程式碼的時候
*pClientSocket->setSourse(*pClientIP,clientPort);
這一行compile始終不會過=.=
我把pClientIP的*拿掉他會顯示illegal indirection
不拿掉會顯示cannot convert parameter 1 from 'char' to 'char *'
請問這要如何修改啊?
--
那怕是一點點自以為是的紀念
http://www.wretch.cc/blog/sgmp2555029
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.127.186.9
推
06/13 22:06, , 1F
06/13 22:06, 1F
→
06/13 22:06, , 2F
06/13 22:06, 2F
→
06/13 22:17, , 3F
06/13 22:17, 3F
推
06/13 22:22, , 4F
06/13 22:22, 4F
→
06/13 22:22, , 5F
06/13 22:22, 5F
→
06/13 22:22, , 6F
06/13 22:22, 6F
COMPILE一樣不會過 錯誤訊息會顯示 illegal indirection
→
06/13 22:42, , 7F
06/13 22:42, 7F
推
06/13 22:47, , 8F
06/13 22:47, 8F
→
06/13 22:48, , 9F
06/13 22:48, 9F
pClientIP跟clientPort都是private的 為什麼不用class?
※ 編輯: kuro44776 來自: 140.127.186.9 (06/13 23:00)
→
06/13 23:43, , 10F
06/13 23:43, 10F
推
06/13 23:44, , 11F
06/13 23:44, 11F
→
06/13 23:45, , 12F
06/13 23:45, 12F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):