YinghuiYou 2019-01-17 00:52 采纳率: 0%
浏览 1570

VS2017,MFC,TCP通信,客户端无法连接调试助手

#1.自己所创建的客户端无法连接调试助手。
自己创建的客户端可以和自己创建的服务器端通信,调试助手连不了自己创建的服务器,自己创建的客户端也连不了调试助手。完全不知道问题出在哪了,,
两个客户端可以同时运行,端口和IP使用情况如下:
图片说明

#2.客户端核心代码如下:
##“连接”按钮的时间处理程序。

        void CGeoDlg::OnBnClickedButton1()
        {
            // TODO: 在此添加控件通知处理程序代码
            char ipaddress[35];
            char port[8];
            m_ipaddr.GetWindowText(ipaddress,30);
            cli.sin_addr.s_addr = inet_addr(ipaddress);
            cli.sin_family = AF_INET;
            cli.sin_port = m_ter.GetWindowText(port,8);
            //htons(5000);
            //创建socket
            clisock = socket(AF_INET, SOCK_STREAM, 0);  
            //启动线程
            ee = 1;
            AfxBeginThread(thread, 0);
    }

##线程AfxBeginThread()代码如下

UINT thread(LPVOID v)
{
    char buff[100];
    char array[25][30] =
    { "155.245.160.151",
    "155.245.160.152",
    "155.245.160.153",
    "155.245.160.154",
    "155.245.160.155",
    "155.245.160.156",
    "155.245.160.157",
    "155.245.160.158",
    "155.245.160.159",
    "155.245.160.160",
    "155.245.160.161",
    "155.245.160.162",
    "155.245.160.163",
    "155.245.160.164",
    "155.245.160.165",
    "155.245.160.166",
    "155.245.160.167",
    "155.245.160.168",
    "155.245.160.169",
    "155.245.160.170",
    "155.245.160.171",
    "155.245.160.172",
    "155.245.160.173",
    "155.245.160.174",
    "155.245.160.171" };
    /*CSize size;
    size.cx = 0;
    size.cy = 30;*/
    int s = 1, addcount = 0;
    CGeoDlg *dlg = (CGeoDlg*)AfxGetApp()->GetMainWnd();
    dlg->m_connect.EnableWindow(FALSE);
    dlg->m_disconnect.EnableWindow(TRUE);
    //连接到服务器
    while (connect(dlg->clisock, (sockaddr*)&(dlg->cli), sizeof(dlg->cli)) && dlg->ee != 0)
    {
        dlg->m_edit.SetWindowText("等待.....");
        //空循环
        for (int i = 0; i <= 65000; i++)
            for (int j = 0; j <= 200; j++);
                if (addcount == 25)
                    addcount = 0;
        dlg->cli.sin_addr.s_addr = inet_addr(array[addcount++]);
}

if (dlg->ee == 1)
    dlg->m_edit.SetWindowText( "连接成功");
//dlg->m_button1.EnableWindow(TRUE);
    dlg->SetForegroundWindow();

//循环获得数据
/*while (s != SOCKET_ERROR && dlg->ee != 0)
{
    //调用recv函数接收数据
    s = recv(dlg->clisock, buff, 100, 0);
    dlg->SetForegroundWindow();
    if (s != SOCKET_ERROR && dlg->ee != 0)
        dlg->m_list.InsertItem(dlg->count++, buff);
    dlg->m_list.Scroll(size);
}*/
//发送断开命令
send(dlg->clisock, "Disconnected", 100, 0);
//dlg->m_button1.EnableWindow(FALSE);
dlg->m_connect.EnableWindow(TRUE);
dlg->m_disconnect.EnableWindow(FALSE);
closesocket(dlg->clisock);
AfxEndThread(0);
return 0;
}

#3.完全不知到问题在哪
非计算机类专业,当时也没认真学,现在急着解决问题,实在不知道该怎么办了,,,

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 求一段fortran代码用IVF编译运行的结果
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 lammps拉伸应力应变曲线分析
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
    • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
    • ¥30 python代码,帮调试,帮帮忙吧
    • ¥15 #MATLAB仿真#车辆换道路径规划