我没有遇到过问题1,贴一下你创建socket的代码吧,应该是用法问题。
第二个问题看下面
//
// MessageId: WSAENOTSOCK
//
// MessageText:
//
// An operation was attempted on something that is not a socket.
//
#define WSAENOTSOCK 10038L
MSDN:
由 Microsoft Winsock 实现将 Windows NT 错误"OBJECT_TYPE_MISMATCH"被映射到 Windows 套接字错误"WSAENOTSOCK"。"OBJECT_TYPE_MISMATCH"错误的一个可能的原因是这种方式编写的应用程序与不止一次关闭一个给定的句柄。错误是在多处理器计算机上发生的可能性更大。
注意,它们与他们完成时关闭其句柄的所有将被要求使用 Win32 API 集编程的应用程序开发人员。 但是,如果应用程序是写入,并且与 C 运行时库链接,C 运行时代码的一些自动清理资源 (如线程的句柄。如果应用程序开发人员专门,关闭线程句柄,然后调用终止线程 _endthread(),_endthread 例程也试图关闭同一个句柄。如果该句柄已被重新使用在该点 (由另一个线程),它将成为无效的线程,并有可能会导致错误,如"INVALID_HANDLE"或"OBJECT_TYPE_MISMATCH。