Winsock客户端/服务器教程以桌面作为客户端失败,但与笔记本电脑一起作为客户端

问题描述 投票:-1回答:1

我已经从Getting Started with Winsock教程成功构建了客户端和服务器模块。

我的台式机和笔记本电脑都连接到我的无线路由器 - 都运行Windows 10。


在笔记本电脑上运行客户端模块,我能够使用桌面的IP地址成功地将数据来回传输到桌面(运行服务器模块)。


使用笔记本电脑的IP地址作为命令行参数在桌面上运行客户端模块,我得到“无法连接到服务器!”延迟十秒后的消息。

如果我尝试使用“localhost”命令行参数在单独的控制台窗口中运行桌面上的两个模块,则客户端控制台显示“Bytes sent:14”并挂起等待来自服务器的响应 - 但是如果我使用任何一个桌面名称或桌面IP地址代替“localhost”。

我可以使用“localhost”,笔记本电脑名称或笔记本电脑IP地址作为参数在笔记本电脑上运行这两个模块。


我已经完成了相同的动作,在路由器上转发了端口27015,并且在桌面和笔记本电脑上都添加了传入和传出防火墙例外 - 两种方式都没有区别。

任何帮助将不胜感激,因为我无法弄清楚为什么这个方向在一个方向而不是另一个方向。

c++ winsock winsock2
1个回答
0
投票

感谢Karsten和Andriy的建议。我首先尝试让两台计算机相互ping通,但都没有成功。在线研究之后,我在防火墙设置中打开“回应请求”后能够让他们ping,但我原来的问题仍然存在。然后我尝试关闭两个防火墙,我能够让我的服务器和客户端程序双向工作。这不是一个很好的长期解决方案,因此我尝试选择性地禁用防火墙,并意识到这是笔记本电脑的问题。我注意到我的“server.exe”程序在允许的应用程序列表中两次 - 一个实例授予私有访问权限,一个授予公共访问权限 - 但只有一个实例处于活动状态。我删除了两个并添加了“server.exe”,同时检查了公共和私人访问框,这解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.