swomfs 2017-04-19 13:01 采纳率: 0%
浏览 1246

MFC CSocket 在VS2010下 客户端只能接收一次服务器的返回信息,并且之后的代码不能执行

CSocket sock_client;
......
void Cftp_clientDlg::OnBnClickedconnect()
{
AfxSocketInit();
if(!sock_client.Create())
{
AfxMessageBox(_T("socket创建失败!"));
return;
}
UpdateData(true);

if(!sock_client.Connect(m_host,m_port))
{
AfxMessageBox(_T("socket连接服务器失败!"));
return;
}
MySockRecv();
CString send_msg;
send_msg = "USER ";
send_msg += m_name;
send_msg += "\r\n";
MySockSend(send_msg);
MySockRecv();
send_msg = "PASS ";
send_msg += m_password;
send_msg += "\r\n";
MySockSend(send_msg);
MySockRecv();

void Cftp_clientDlg::MySockRecv()
{
char buf_recv[200] = "";
if(SOCKET_ERROR == sock_client.Receive(buf_recv,199))
{
AfxMessageBox(_T("数据接收失败!"));
return;
}
CString show_msg("响应:");
show_msg += buf_recv;
m_listbox.AddString(show_msg);
}
void Cftp_clientDlg::MySockSend(CString send_msg)
{
if(SOCKET_ERROR == sock_client.Send(send_msg,send_msg.GetLength()))
{
AfxMessageBox(_T("数据发送失败!"));
return;
}
CString show_msg("命令:");
show_msg += send_msg;
m_listbox.AddString(show_msg);
}图片说明

  • 写回答

1条回答

  • 关注

    请继承CSocket重写OnReceived();方法,这个就是有消息来即调用,在里面调用received(~~);方法即获取数据!!!

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器