请问CSocket::Create()失败的原因?

farger 2005-05-11 12:05:07
#define MYPORT 4444

有一派生于CSocket类的某类的对象m_mysock,
在一个基于对话框的CxxxDlg::CxxxDlg(CWnd* pParent /*=NULL*/)
: CDialog(CxxxDlg::IDD, pParent)
{
//......

if(!m_mysock.Create(MYPORT,SOCK_DGRAM))
{

CString str;
str.Format("Error Code:%d",CSocket::GetLastError());
AfxMessageBox("Failed to Create Socket!\n"+str);

}
}
执行时总是不能Create Socket
用GetLastError()返回的错误代码为:10093
请问:有些什么原因引起不能创建套接字?
由这个10093可以得到什么信息呢?新手学习中,麻烦各位~
...全文
921 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qrlvls 2005-05-11
  • 打赏
  • 举报
回复
加入 AfxSocketInit 就可以了
编译时 rebuild all 试试,如果执行过程中出现问题用 Debug 模式跟踪一下
farger 2005-05-11
  • 打赏
  • 举报
回复
奇怪了
刚才加了AfxSocketInit()之后编译执行成功,
过了一会再执行有出现一个错误代码为:10048的 又是为什么?

dongfa 2005-05-11
  • 打赏
  • 举报
回复
没初始化socket
可以简单调用AfxSocketInit()
mahatma_cn 2005-05-11
  • 打赏
  • 举报
回复
应用程序没有调用 WSAStartup,或者 WSAStartup 失败。
wy99sinacom 2005-05-11
  • 打赏
  • 举报
回复
没有初始化 AfxSocketInit()

int REUSEADDR_flag=1;
setsockopt(socketaddr,IPPROTO_TCP,SO_REUSEADDR,(char*)&REUSEADDR_flag,sizeof(int));
comman_wang 2005-05-11
  • 打赏
  • 举报
回复
10048 地址在使用中.通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次。
如果你想多次使用这个地址端口,可以设置
int REUSEADDR_flag=1;
setsockopt(socketaddr,IPPROTO_TCP,SO_REUSEADDR,(char*)&REUSEADDR_flag,sizeof(int));

另外注意每次使用完记得关闭,防止造成资源泄漏。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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