c++ - send(),返回 Winsock 错误 10038

标签 c++ windows visual-studio-2008 multithreading winsock

问题:

  • 调用 send(),针对套接字句柄返回 Winsock 错误 10038

插图:

acceptedSocket = accept (server, (sockaddr *)&sin, &len);
  • accept(),返回0
    • 为每个连接创建一个新的线程
    • send(),(在线程函数中)返回10038

说明: - 在线程函数中

//omitted
SOCKET RemoteSocket = (SOCKET) client;
//omitted
send (RemoteSocket, stringToSpend, strlen(stringToSpend), 0)

建议:

  • 可能,竞争条件?
  • 可以使用 I/O 完成端口,但现阶段不能使用

最佳答案

是不是线路的问题

acceptedSocket = accept (server, (sockaddr *)&sin, &len) == INVALID_SOCKET)

您使 acceptedSocket 成为比较的结果,但您应该以某种方式存储从 accept 返回的实际套接字:

acceptedSocket = accept (server, (sockaddr *)&sin, &len);
isOK= acceptedSocket!=INVALID_SOCKET;

虽然我对你帖子中不平衡的括号有点困惑,所以我可能是错的

关于c++ - send(),返回 Winsock 错误 10038,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/577780/

相关文章:

c++ - 比较/复制坐标结构;重载

c++ - 创建模板参数的默认值变量

.net - CLR之间的差异

java - 如何使 JDK 成为默认的 JRE?

windows - 打开应用程序级别构建 gradle 时应用程序不起作用

c# - 在 Visual Studio 中查看变量的地址位置

c# - 导致错误的 ASP.NET 页面指令

c# - 有没有办法在 VS2008 之外的安装项目中执行 "Refresh Dependencies"?

针对缓冲区溢出、格式字符串错误和整数溢出的 C++ 安全框架

c++ - 从协方差矩阵中找出概率椭圆