socket的bind错误,错误号是10038,SOCKET是不是不能在线程里创建???

lpt 2001-07-02 04:33:33
如题,谢谢
...全文
1027 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xgigi 2002-03-08
  • 打赏
  • 举报
回复
只要线程没结束,在其他线程里得到socket的句柄就能用的
skt985 2002-01-11
  • 打赏
  • 举报
回复
31230关注! :)
flyasfreebird 2001-09-28
  • 打赏
  • 举报
回复
请问,线程中创建的socket真的不能被其他线程使用吗?
可是我看到很多例子都是这样做的.
很迷惑.
unix123 2001-09-01
  • 打赏
  • 举报
回复
上面我提的这个问题,如果将bind去掉的话,accept时会出错

CSocket::PumpMessages(unsigned int 8) line 850 + 28 bytes
CSocket::Accept(CAsyncSocket & {CAsyncSocket}, sockaddr * 0x00c8fe9c, int * 0x00000000) line 652 + 13 bytes
ServerThreadProc(void * 0x00000184) line 120 + 31 bytes
_AfxThreadEntry(void * 0x0064f78c) line 112 + 13 bytes
_threadstartex(void * 0x00772940) line 212 + 13 bytes
KERNEL32! bff8922c()
KERNEL32! bff86cd5()
KERNEL32! bff86bd2()

为什么,请高手指教,谢谢!!
unix123 2001-09-01
  • 打赏
  • 举报
回复
socket的bind错误,错误号是10022,即
WSAEINVAL The socket is already bound to an address.
请高手指教!
附上代码:
服务器端:
UINT ServerThreadProc(LPVOID pParam)
{
CSockAddr saClient;
CSocket sConnect;
try{
if (!g_sListen.Accept (sConnect,saClient)){
return 0;
}
AfxBeginThread(ServerThreadProc,pParam);
//sConnect.SendTo ("aaa");
sConnect.Close ();

}
catch (CException *e){
e->Delete ();
}
return 0;
}

void CMainFrame::OnStartServer()
{
// TODO: Add your command handler code here
try{
CSockAddr saServer(INADDR_ANY,80);
if (!g_sListen.Create ())
TRACE("Create Socket fail\n");
if (!g_sListen.Bind (saServer,sizeof(saServer)))
{
TRACE("Bind fail %d\n",GetLastError());
}
if (!g_sListen.Listen ())
TRACE("Listen fail\n");
AfxBeginThread(ServerThreadProc,GetSafeHwnd());
}
catch (CException *e){
g_sListen.Close ();
}
}


  
lpt 2001-07-04
  • 打赏
  • 举报
回复
给分了
Tasehouny 2001-07-03
  • 打赏
  • 举报
回复
在一个非套接字上尝试了一个操作
begin 2001-07-03
  • 打赏
  • 举报
回复
在线称中创建的socket,在其他线程中好像是不能用的(包括主线称)。
据说是因为线称由自己的存储空间,你在线称中创建的socket,
如果线称结束了就已经释放了
happydeer 2001-07-02
  • 打赏
  • 举报
回复
TO lpt(独云):
SOCKET错误可以到winsock.h中去查。
#define WSABASEERR 10000
/*
* Windows Sockets definitions of regular Microsoft C error constants
*/
#define WSAEINTR (WSABASEERR+4)
#define WSAEBADF (WSABASEERR+9)
#define WSAEACCES (WSABASEERR+13)
#define WSAEFAULT (WSABASEERR+14)
#define WSAEINVAL (WSABASEERR+22)
#define WSAEMFILE (WSABASEERR+24)

/*
* Windows Sockets definitions of regular Berkeley error constants
*/
#define WSAEWOULDBLOCK (WSABASEERR+35)
#define WSAEINPROGRESS (WSABASEERR+36)
#define WSAEALREADY (WSABASEERR+37)
#define WSAENOTSOCK (WSABASEERR+38)
#define WSAEDESTADDRREQ (WSABASEERR+39)
#define WSAEMSGSIZE (WSABASEERR+40)
#define WSAEPROTOTYPE (WSABASEERR+41)
#define WSAENOPROTOOPT (WSABASEERR+42)
#define WSAEPROTONOSUPPORT (WSABASEERR+43)
#define WSAESOCKTNOSUPPORT (WSABASEERR+44)
#define WSAEOPNOTSUPP (WSABASEERR+45)
#define WSAEPFNOSUPPORT (WSABASEERR+46)
#define WSAEAFNOSUPPORT (WSABASEERR+47)
#define WSAEADDRINUSE (WSABASEERR+48)
#define WSAEADDRNOTAVAIL (WSABASEERR+49)
#define WSAENETDOWN (WSABASEERR+50)
#define WSAENETUNREACH (WSABASEERR+51)
#define WSAENETRESET (WSABASEERR+52)
#define WSAECONNABORTED (WSABASEERR+53)
#define WSAECONNRESET (WSABASEERR+54)
#define WSAENOBUFS (WSABASEERR+55)
#define WSAEISCONN (WSABASEERR+56)
#define WSAENOTCONN (WSABASEERR+57)
#define WSAESHUTDOWN (WSABASEERR+58)
#define WSAETOOMANYREFS (WSABASEERR+59)
#define WSAETIMEDOUT (WSABASEERR+60)
#define WSAECONNREFUSED (WSABASEERR+61)
#define WSAELOOP (WSABASEERR+62)
#define WSAENAMETOOLONG (WSABASEERR+63)
#define WSAEHOSTDOWN (WSABASEERR+64)
#define WSAEHOSTUNREACH (WSABASEERR+65)
#define WSAENOTEMPTY (WSABASEERR+66)
#define WSAEPROCLIM (WSABASEERR+67)
#define WSAEUSERS (WSABASEERR+68)
#define WSAEDQUOT (WSABASEERR+69)
#define WSAESTALE (WSABASEERR+70)
#define WSAEREMOTE (WSABASEERR+71)

#define WSAEDISCON (WSABASEERR+101)

/*
xlqin 2001-07-02
  • 打赏
  • 举报
回复
WSAENOTSOCK (10038) Socket operation on non-socket
可能是套接字名柄参数没有引用到一个合法的套接字
应是你的SOCKET参数有问题!
lpt 2001-07-02
  • 打赏
  • 举报
回复
创建成功啦
去那里查SOCKET错误???
wjyasd 2001-07-02
  • 打赏
  • 举报
回复
是吧,线程中负责接受数据!
guostong 2001-07-02
  • 打赏
  • 举报
回复
10038:The descriptor is not a socket.
你的socket创建成功了?
lpt 2001-07-02
  • 打赏
  • 举报
回复
没人答呀

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧