我已成功构建了Getting Started with Winsock教程中的客户端和服务器模块。
我的台式机和笔记本电脑都连接到我的无线路由器 - 都运行Windows 10。
在笔记本电脑上运行客户端模块,我能够使用桌面的IP地址成功地将数据来回传输到桌面(运行服务器模块)。
使用笔记本电脑的IP地址作为命令行参数在桌面上运行客户端模块,我收到“无法连接到服务器!”延迟十秒后的消息。
如果我尝试使用“localhost”命令行参数在单独的控制台窗口中运行桌面上的两个模块,则客户端控制台会显示“Bytes sent:14”并挂起等待来自服务器的响应 - 但是如果我使用桌面名称或桌面IP地址代替“localhost”。
我可以使用“localhost”,笔记本电脑名称或笔记本电脑IP地址作为参数在笔记本电脑上运行这两个模块。
我已经完成了同样的动作,在路由器上转发端口27015,并在桌面和笔记本电脑上添加了传入和传出的防火墙例外 - 两种方式都没有区别。
任何协助都会受到高度赞赏,因为我无法弄清楚为什么这种方向在一个方向而不是另一方向。
答案 0 :(得分:0)
感谢Karsten和Andriy的建议。我首先尝试让两台计算机相互ping通,但都没有成功。在线研究之后,我在防火墙设置中打开“回应请求”后能够让他们ping,但我原来的问题仍然存在。然后我尝试关闭两个防火墙,我能够让我的服务器和客户端程序双向工作。这不是一个很好的长期解决方案,因此我尝试选择性地禁用防火墙,并意识到这是笔记本电脑的问题。我注意到我的“server.exe”程序在允许的应用程序列表中两次 - 一个实例授予私有访问权限,一个授予公共访问权限 - 但只有一个实例处于活动状态。我删除了两个并再次添加了“server.exe”,同时检查了公共和私人访问框,这解决了我的问题。