关于CSocket::Create()的问题
我实现了一个SOCK_STREAM模式的文件发送端程序和接收端程序
在发送端,我想从文本框读入用户输入的接收端IP地址,然后调用CSocket::Create(UINT nSocketPort = 0,int nSocketType = SOCK_STREAM,LPCTSTR lpszSocketAddress= NULL ),其中IP地址作为参数之一。我的意图是仅对该IP地址进行监听。代码如下:
CSocket sockSrvr;
CString szIP;
GetDlgItemText(IDC_EDIT_IPADDRESS,szIP); //读入一个IP地址字符串
if(!sockSrvr.Create(9999,SOCK_STREAM,(LPCTSTR)szIP))
{
DWORD err = GetLastError();
AfxMessageBox("连接到对方机器失败!");
return;
}
sockSrvr.Listen();
CSocket sockRecv;
sockSrvr.Accept(sockRecv);
……………………
但是,如果文本框输入本机IP地址,运行正常;若输入其他IP地址,则会报错:AfxMessageBox("连接到对方机器失败!");
希望大家解释原因,由于我初次学习网络编程,可能基本概念还不太清楚,我是想达到仅对用户输入IP地址进行监听的效果,是否可行?
谢谢了!