套接字连接到我的IP而不是127.0.0.1

时间:2011-06-29 14:40:56

标签: java sockets network-programming

好吧,我是java的Socket编程新手。我试图实现一个简单的套接字程序,将127.0.0.1:4242的消息作为localhost发送。但我想发送消息到特定的IP。我怎样才能实现这一目标?是否可以在客户端服务器同时运行时将消息发送到我自己的IP?

2 个答案:

答案 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)。