我有一个同步的TCP服务器和客户端应用程序,在两个单独的主机上可以正常工作。
我想知道的是,当应用程序都在同一主机上运行时,我将服务器套接字和客户端套接字绑定到哪个IP和端口。
我在Google上找不到任何可靠的信息。 当我尝试使用IP地址为192.168.0.32的网络IP时,出现一条错误消息,提示主机主动拒绝了连接。
我找不到有关此错误的任何合理信息。
我可以在同一端口上收听和发送吗?
当两个应用程序都在同一台计算机上运行时,我应该使用哪个IP地址来绑定服务器和客户端?
感谢您的宝贵时间。
答案 0 :(得分:1)
为了在同一主机上运行客户端和服务器应用程序,您应该将服务器套接字绑定到localhost(实际上您可以写“ localhost”,这是一个保留字或127.0.0.1),并从客户端进行寻址。 无论如何,Localhost都是指您使用的计算机。
如果您想使用您提到的网络IP从本地网络外部的计算机访问服务器,则应首先在路由器设置中搜索“ IP FORWARDING”选项,然后将传入的请求转发给服务器所在的计算机。
或者(我的最爱)使用ngrok的出色IP隧道服务。您可以在这里https://ngrok.com/
找到它祝你好运。
答案 1 :(得分:0)
因此,此问题的答案是我必须将客户端和服务器的单独端口绑定到我的回送地址!!
答案 2 :(得分:0)
这两个IP地址都可以是回送127.0.0.1,也可以是您的IP地址,我不知道为什么它不起作用。
另一方面,假设客户端应用程序不侦听您“绑定”到该端口的端口,则该端口必须相同才能正常工作。
您必须告诉服务器应该在哪个端口上监听。然后,客户端必须在同一端口上发送数据,服务器才能获取信息。
该示例将帮助您:https://www.codeproject.com/Articles/1415/Introduction-to-TCP-client-server-in-C