MFC中利用socket进行网络编程时,在ip地址转换函数inet_addr( )进行转换时无法正常工.
部分代码如下:SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
//////建立连接//////
SOCKADDR_IN addrSrv;
BYTE filed0,filed1,filed2,filed3;
m_bkip.GetAddress(filed0,filed1,filed2,filed3); //从MFC里ip地址栏中获取输入的ip地址
CString bkip;
bkip.Format(_T("%d.%d.%d.%d"),filed0,filed1,filed2,filed3);
// AfxMessageBox(bkip);
addrSrv.sin_addr.S_un.S_addr=inet_addr("bkip");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(4321);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
前面基本没有问题,我试了被注释了的 AfxMessageBox(bkip);能够弹出获得的ip地址,就是不知道怎么就链接不上客户端...望大神帮忙!!!
本帖最后由 nsonline 于 2014-5-13 20:17 编辑
bkip本来就是一个变量,你再给它加双引号是把"bkip"这个字符串传进去了,而不是传递的bkip这个变量的值啊。
addrSrv.sin_addr.S_un.S_addr=inet_addr(bkip);应该是这样的。
额,我以前做过一个MFC的总结,里面有socket编程,看看吧,
页:
[1]