2017-12-02 11 views
-2

두 시스템이 있습니다. 둘 다 ifconfig를 실행합니다. 나는 모바일 핫스팟에서 wifi를 통해 인터넷에 액세스하고 있습니다. 두 ifconfig 출력을 붙여 넣습니다. 둘 다 IP가 127.0.0.1이라고 생각합니다 (2 개의 다른 모바일을 사용하고 있지만). 둘 사이에 tcp/ip 소켓을 사용하여 통신해야합니다. 확인해주세요. 그리고 자기가 원하는 IP 주소를 찾을 수있는 C 프로그램을 얻을 수 있다면 더 좋습니다. 두 IP가 같으면 IP 주소를 변경해야합니다. 두 장치의 IP가 같은 이유는 무엇입니까? 그들이 인터넷에 어떻게 접근하고 있습니까? 내 대상 장치는 소켓 통신을 위해 gprs를 사용하는 SIM 카드가있는 2 개의 내장 장치입니다. 모든ifconfig-> 결과는 TCP/IP 소켓에 부여 할 내 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 개의 임베디드 장치를 만들고 싶습니다. 그들 사이의 거리가 1km라고 가정하면 어떻게 서로 통신 할 수 있습니까? –