好吧,我是java的Socket编程新手。我试图实现一个简单的套接字程序,将127.0.0.1:4242的消息作为localhost发送。但我想发送消息到特定的IP。我怎样才能实现这一目标?是否可以在客户端服务器同时运行时将消息发送到我自己的IP?
答案 0 :(得分:1)
套接字通信中的端点是端点。使用127.0.0.1可以执行的任何操作都可以使用该机器的IP地址完成。有关详细信息,请参阅here。
答案 1 :(得分:0)
每个IP数据报在IP标头中都有一个源地址和一个目标地址,加上一个传输协议号,对于大多数互联网流量来说,它是TCP或UDP。然后,该传输协议的标头列出源和目标端口号。
所以在这里你有 - 发送,或者更好地说“客户端”,应用程序获得分配的源地址和端口,通常是自动的 - 由本地路由表确定的地址,分配在ephemeral ports范围之外的端口号,而“server”应用程序侦听<{3}}绑定到特定计算机上的地址的。这个元组(source IP, source port, destination IP, destination port)
足以让数据报从这里传到那里。
127.0.0.1
,实际上127/8
范围内的所有地址都是为well known port保留的,这是一个虚拟的本地接口,也就是说“无论我的真实情况如何”地址是,或者即使我没有地址,也可以连接到这台机器,我现在正在“。
阅读loopback协议套件 - 这是一个相当简单的概念(有很多有趣的细节,cource)。