2017-12-02 306 views
-2

我有2个系统。我在它们两个上运行ifconfig。我通过移动热点的无线网络访问互联网。我正在粘贴两者的ifconfig输出。我猜这两个IP是127.0.0.1(虽然我使用2个不同的手机)。我需要使用tcp/ip套接字在它们之间进行通信。请确认我。如果我能找到一个c程序来找到自己的IP地址,那更好。如果两个IP相同,则需要更改其IP地址。为什么两台设备的IP相同?他们如何访问互联网?我的目标设备将是2个带SIM卡的嵌入式设备,使用gprs进行套接字通信。ifconfig->这是我的IP地址给TCP/IP套接字的结果

System1->

enp2s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 
     ether 2c:56:dc:29:7f:66 txqueuelen 1000 (Ethernet) 
     RX packets 0 bytes 0 (0.0 B) 
     RX errors 0 dropped 0 overruns 0 frame 0 
     TX packets 0 bytes 0 (0.0 B) 
     TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 
     inet 127.0.0.1 netmask 255.0.0.0 
     inet6 ::1 prefixlen 128 scopeid 0x10<host> 
     loop txqueuelen 1000 (Local Loopback) 
     RX packets 233 bytes 15817 (15.8 KB) 
     RX errors 0 dropped 0 overruns 0 frame 0 
     TX packets 233 bytes 15817 (15.8 KB) 
     TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 
     inet 192.168.43.26 netmask 255.255.255.0 broadcast 192.168.43.255 
     inet6 2405:204:f184:563e:e0f8:7b7e:3ea4:244b prefixlen 64 scopeid 0x0<global> 
     inet6 fe80::e9a9:9f55:2fd4:2255 prefixlen 64 scopeid 0x20<link> 
     inet6 2405:204:f184:563e:f2da:16c6:1bd5:15ee prefixlen 64 scopeid 0x0<global> 
     ether 80:a5:89:3d:85:3b txqueuelen 1000 (Ethernet) 
     RX packets 403 bytes 307722 (307.7 KB) 
     RX errors 0 dropped 0 overruns 0 frame 0 
     TX packets 945 bytes 134915 (134.9 KB) 
     TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

系统2->

lo  Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:289 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:289 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:0 
      RX bytes:26628 (26.6 KB) TX bytes:26628 (26.6 KB) 

wlan0  Link encap:Ethernet HWaddr e4:02:9b:84:a4:72 
      inet addr:192.168.43.217 Bcast:192.168.43.255 Mask:255.255.255.0 
      inet6 addr: 2405:204:f184:563e:5d6b:9906:ff66:ab2c/64 Scope:Global 
      inet6 addr: 2405:204:f184:563e:e602:9bff:fe84:a472/64 Scope:Global 
      inet6 addr: fe80::e602:9bff:fe84:a472/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:1659 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:964 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:545249 (545.2 KB) TX bytes:179680 (179.6 KB) 
+3

127.0.0.1是环回地址。您无法从外部连接到它。您应该使用192.168。*。*地址。 – EJP

回答

0

首先,127.0.0.1是设备loopback地址,每个具有网络卡将有该设备。

现在根据你想要达到的要求我需要使用tcp/ip套接字在两者之间进行通信。如果您使用移动热点作为路由器,请确保两台设备都连接到一个热点,以便它们都在一个网络上,而不是两个不同的网络。

然后确保设备的防火墙允许您想要使用的TCP端口上的入站/出站流量,并且您应该能够在两个设备之间进行通信。

这两个设备连接到两个不同的移动热点(这被认为是两个不同的网络),你不能实现,因为手机没有一个功能,你可以添加端口转发规则允许来自互联网的流量路由器呢。

+0

所以,我想用2个SIM卡制作2个嵌入式设备。如果他们之间的距离假设为1公里,他们如何相互沟通。 –