Win下socket,为什么bind总是 = SOCKET_ERROR?

矫情狗_____ 2012-11-02 09:43:38
	OutputDebugString("等待网络接入线程开始: ");

CDibblingDlg* pThis = (CDibblingDlg*)lParam;

SOCKET _sLocal = NULL;
if(_sLocal = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) == SOCKET_ERROR)
{
AfxMessageBox("网络异常,请检查网络连接!");
return -1;
}

CString _cPort;
pThis->m_edPort.GetWindowText(_cPort);

int nPort = atoi(_cPort);

sockaddr_in _InternetAddr;
ZeroMemory(&_InternetAddr, sizeof(_InternetAddr));
_InternetAddr.sin_family = AF_INET;
_InternetAddr.sin_port = htons(nPort);
_InternetAddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
if(bind(_sLocal, (struct sockaddr*)&_InternetAddr, sizeof(_InternetAddr)) == SOCKET_ERROR)
{
AfxMessageBox("网络异常,请检查网络连接!");
return -1;
}

if(listen(_sLocal, 5) == SOCKET_ERROR)
{
AfxMessageBox("网络异常,请检查网络连接!");
return -1;
}
...全文
751 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
PG 2012-11-02
  • 打赏
  • 举报
回复
getlasterror()......
ShengFei01 2012-11-02
  • 打赏
  • 举报
回复
先调用WSAStartup,可以参考一下这里有别人写好的socket程序源码:
http://download.csdn.net/detail/geoff08zhang/4571358
wjain 2012-11-02
  • 打赏
  • 举报
回复
查查你bind的端口号是不是已经被占用了`~
cobra_chen 2012-11-02
  • 打赏
  • 举报
回复
使用 WSAGetLastError 查看错误信息
矫情狗_____ 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

在win下,要先初始化winsock库,即调用WSAStartup才能进行socket函数的使用
[/Quote]已经用了AfxSocketInit
ljhnew 2012-11-02
  • 打赏
  • 举报
回复
在win下,要先初始化winsock库,即调用WSAStartup才能进行socket函数的使用
矫情狗_____ 2012-11-02
  • 打赏
  • 举报
回复
发现一个问题,socket返回的句柄值为0,这个套接字是无效的,原因呢?
矫情狗_____ 2012-11-02
  • 打赏
  • 举报
回复
自己顶一下,是如题啊....
herman~~ 2012-11-02
  • 打赏
  • 举报
回复
使用 WSAGetLastError 查
Eleven 2012-11-02
  • 打赏
  • 举报
回复
WSAGetLastError() 的返回值是什么,先看看~

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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