baidu_28235477 2015-09-16 07:23 采纳率: 0%
浏览 1796

socket通信accept语句执行太长(几百毫秒),会丢失数据怎么解决?

WSADATA data; //定义WSADATA结构体对象
WORD w = MAKEWORD(2, 0); //定义版本号码
::WSAStartup(w, &data); //初始化套接字库
SOCKET s, s1;
//定义连接套接字和数据收发套接字句柄

s = ::socket(AF_INET, SOCK_STREAM, 0);      //创建TCP套接字
sockaddr_in addr, addr2;                    //定义套接字地址结构
addr.sin_family = AF_INET;              //初始化地址结构
addr.sin_port = htons(6000);
addr.sin_addr.S_un.S_addr = INADDR_ANY;
int n = sizeof(addr2);

/*connect(s, (sockaddr*)&addr, sizeof(addr));*/

int tt = clock();
bind(s, (sockaddr*)&addr, sizeof(addr));
listen(s, 2);
//s1 = accept(s, (sockaddr*)&addr2, &n);


while (true)
{
    int t1 = clock();
    s1 = accept(s, (sockaddr*)&addr2, &n);//该语句时间很长
    int tt = clock();
    int time = tt - t1;
    char sztext[1000] = { 0 };


    recv(s1, sztext, sizeof(sztext), 0);

if (s1 == INVALID_SOCKET)
{
    AfxMessageBox(_T("通信故障"));
    break;
}
}
  • 写回答

1条回答 默认 最新

  • oyljerry 2015-09-16 09:17
    关注

    这个accept取决于你的客户端请求,有客户端请求了,才会accept,不然就阻塞在那

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型