C#客户端连接C++服务器 目标机器积极拒绝
2015-12-02 22:42
330 查看
用c#客户端连接C++服务器端,客户端调用connect函数时发生异常,错误信息是目标机器积极拒绝,无法连接。在网上找了好久没有解决问题,通过不断的摸索终于找到解决方案:
1.在DOS窗口检查端口是否被打开,命令是:netstat -an
没有发现服务器端监听的端口号
2.把服务器端端口号从本机字节序转为网络字节序,用htons函数
SOCKADDR_IN saServe;
saServe.sin_family = AF_INET;
saServe.sin_port = htons(9999);
saServe.sin_addr.S_un.S_addr = inet_addr("服务器端的IP");
再次调用时链接成功。
3.如果不调用htons,用c++写的客户端可以成功链接服务器端。
总结:网上说的最普遍的方法是关闭防火墙。经过测试,防火墙影响不是很大,如果有影响,就在防火墙中打开通信端口。具体操作是
防火墙:高级设置->新建规则->TCP然后下一步...就行了。
1.在DOS窗口检查端口是否被打开,命令是:netstat -an
没有发现服务器端监听的端口号
2.把服务器端端口号从本机字节序转为网络字节序,用htons函数
SOCKADDR_IN saServe;
saServe.sin_family = AF_INET;
saServe.sin_port = htons(9999);
saServe.sin_addr.S_un.S_addr = inet_addr("服务器端的IP");
再次调用时链接成功。
3.如果不调用htons,用c++写的客户端可以成功链接服务器端。
总结:网上说的最普遍的方法是关闭防火墙。经过测试,防火墙影响不是很大,如果有影响,就在防火墙中打开通信端口。具体操作是
防火墙:高级设置->新建规则->TCP然后下一步...就行了。
相关文章推荐
- C++ 之使用标准库函数对象和函数适配器
- C++标准程序库笔记之一
- C_3:c语言的内存
- 编写一个程序从键盘输入字符,并按要求输出
- C++继承与友元、继承与类型转换
- 一起talk C栗子吧(第七十回:C语言实例--字符串初始化函数)
- C++类的析构函数不能抛出异常
- 在C++中,关键字explicit的作用
- C++ 标准IO库
- C语言纪要
- 判断数组中是否有重复的数字(C++)
- 【C++】基础知识—对C语言的加强
- JNI调用C++类的方式
- leetcode 283 Move Zeroes C++
- C语言 九九乘法表
- 稀疏矩阵的C++实现
- private, public, protected 访问标号的访问范围之C++篇
- POJ 2828 Buy Tickets 题意&题解&代码(c++)
- c++学习笔记(专注细节,持续更新)
- Protocol Buffer技术详解(C++实例)