为什么绑定总是出错呢?

pearlriver 2003-08-23 04:19:12
我想在数据报方式时
将地址和ip绑定,出错!代码如下

#define LOCAL_HOST_ADDR 218.18.33.44
#define sServerPort 7654

CDSocket cSocket1;
struct sockaddr_in here1;

BOOL bFlag=cSocket1.Create(sServerPort,SOCK_DGRAM);
here1.sin_family=AF_INET;
here1.sin_addr.s_addr=inet_addr("218.18.33.4");
here1.sin_port=htons(sServerPort);

bFlag= cSocket1.Bind((LPSOCKADDR)&here1,sizeof(here1));
if(!bFlag)
{
// AfxMessageBox("Socket Error!");

TRACE("not allright2\n");
TRACE("%d\n",GetLastError());
cSocket1.Close();
}

出错码返回 10022
含义
WSAEINVAL (10022) Invalid argument.

提供了非法参数(例如,在使用setsockopt()函数时指定了非法的level)。在一些实例中,它也可能与套接字的当前状态相关,例如,在套接字没有使用listen()使其处于监听时调用accept()函数。

为什么呢?谁能教我

...全文
55 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pearlriver 2003-08-23
  • 打赏
  • 举报
回复
cSocket是从casyncsocket继承来的。
他的函数就是这样的吗
bool create(UINT nsocketport,.......);
bool bind (unit nsocketport.........);
windbells 2003-08-23
  • 打赏
  • 举报
回复
CDSocket是你自己写的类?cSocket1.Create(sServerPort,SOCK_DGRAM); 你第一个参数传进去sServerPort干什么?后面的bind不是也做了绑定地址端口的工作了么。估计是你函数实现的问题

18,356

社区成员

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

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