ysm 发表于 2014-5-13 18:11:31

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 18:11:32

本帖最后由 nsonline 于 2014-5-13 20:17 编辑


bkip本来就是一个变量,你再给它加双引号是把"bkip"这个字符串传进去了,而不是传递的bkip这个变量的值啊。

addrSrv.sin_addr.S_un.S_addr=inet_addr(bkip);应该是这样的。

永远前进的人 发表于 2014-5-16 18:14:36

额,我以前做过一个MFC的总结,里面有socket编程,看看吧,


页: [1]
查看完整版本: MFC中利用socket进行网络编程时,在ip地址转换函数inet_addr( )进行转换时无法正常工.