45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 电脑学院 > 局域网技术 >

connect()返回错误的代码10061的解决办法

电脑软硬件应用网 45IT.COM 时间:2018-02-10 21:55 作者:佚名
刚才写一个简单通信例子出错了,在client端connect()执行时返回错误代码10061 这个错误是这样的: wsaeconnrefused (10061) connection refused. 因为目标主机主动拒绝,连接不能建立。这通常是因为试图连接到一个
刚才写一个简单通信例子出错了,在client端connect()执行时返回错误代码10061
 
这个错误是这样的: wsaeconnrefused (10061) connection refused. 因为目标主机主动拒绝,连接不能建立。这通常是因为试图连接到一个远程主机上不活动的服务,如没有服务器应用程序处于执行状态。 这个错误说得很广泛。首先要检查是否已经开启了server端 = =!,开启了之后又是否成功进行了accept和connect函数的设定(配对使用的嘛)。 connect的参数第一个是client端的socket,第二个是client端地址(输入要连接的IP和端口);而accept函数是对应的server端的socket和地址,它们返回的是各自接收到的socket。我想应该像下面图示那样有三个socket。不要像我这样把各个socket在函数参数中的位置弄乱了...
 
 
 
 
 
┏━━━━━━━┓     ┆     ┏━━━━━━━┓ ┃ 服务端socket ┃     ┆     ┃ 客户端socket ┃ ┗━━━┯━━━┛     ┆     ┗━━━┯━━━┛     ↑ ┏━━━━━━┓       ↓ └←←←←←←←┃传输的socket ┃←←←←←←← ←┛           ┗━━━━━━┛               ┆       server.cpp   ┆     client.cpp
 
 
 
出错的也可能是地址设定不当的原因。我使用的是inet_addr转换IP,htons转换端口。
 
ServerAddr.sin_family=AF_INET;
 
ServerAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//IP转换
 
ServerAddr.sin_port=htons(PORT);//端口转换
 
注意如果直接用sin_port=PORT是不行的。而IP不一定要字符串来转换,还有其他的不一一列举了。
 
最后还是两边的设置要配对呀~ 不然socket怎么知道去哪里? 
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识