TCP下bind怎么总是返回-1?

Cricketol 2007-08-05 11:25:36
#define INADDR_ANY (u_long)0x00000000
u_short sport=htons(4345);
.........

SerSockaddr.sin_family=AF_INET;
SerSockaddr.sin_addr.S_un.S_addr=INADDR_ANY;
SerSockaddr.sin_port=sport;
errCode=bind(m_sock1,(LPSOCKADDR)&SerSockaddr,sizeof(SerSockaddr));
if(errCode==SOCKET_ERROR)
{
status.Format("bind the server error! code:%d,%d",errCode,WSAGetLastError());
UpdateData(FALSE);
return;
}
..........
调试过程中bind前面的内容都成功初始化,直到bind这里status值为
"bind the server error! code:-1,10038"

怎么回事?
出错在哪里?
谢谢11
...全文
977 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengzhigang123 2012-08-08
  • 打赏
  • 举报
回复
换个端口试试
青芒Only 2012-08-08
  • 打赏
  • 举报
回复
LZ问题解决了吗?我也遇到相同问题,socket文件符创建成功,但是bind返回-1了
Cricketol 2007-08-06
  • 打赏
  • 举报
回复
2楼的说法接近了,m_sock1确实非有效
但是我这样改了以后还是出错了
CSocket m_sock1;
m_sock1=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);//编译器说这行错误

错误原因: error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'unsigned int' (or there is no acceptable conversion)

是怎么回事?

songweiming 2007-08-06
  • 打赏
  • 举报
回复
SerSockaddr.sin_addr.s_addr=inet_addr(INADDR_ANY);
vcnewer 2007-08-06
  • 打赏
  • 举报
回复
嘿,这么晚了,牙医也在
mfc168 2007-08-06
  • 打赏
  • 举报
回复
m_sock1=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//AF_INET not PF_INET
xdljf 2007-08-06
  • 打赏
  • 举报
回复
WSAStartup(........

SOCKET m_sock1;
m_sock1=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);//编译器说这行错误
DentistryDoctor 2007-08-05
  • 打赏
  • 举报
回复
Socket operation on nonsocket.
An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket,

m_sock1是否是有效的套接字?
Cricketol 2007-08-05
  • 打赏
  • 举报
回复
补充:编译都是可以通过的

18,363

社区成员

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

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