0
我想製作一個基於android的信使,我正在設計這樣一種方式,即兩個互相聊天的te用戶都是服務器和客戶端。訪問不同網絡中具有一個基於公共IP的路由器並且設備具有本地IP地址的設備存在問題。我可以將消息發送到公共IP設備,但我無法使用公共接口路由器訪問本地網絡內的設備。 說 發件人IP:130.190.93.68 路由器的IP是:130.190.09.54 路由器專網內reciever的IP:192.168.15.186如何從互聯網上訪問本地IP設備
發送者希望與接收器通信。我如何使用套接字編程來實現它。
編輯代碼從評論:
public class SocketClient extends Activity {
private Socket socket;
private String serverIpAddress = "192.168.15.186";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt = (Button) findViewById(R.id.myButton);
tv = (TextView) findViewById(R.id.myTextView);
InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
socket = new Socket(serverAddr, 5000);
感謝Joachim,但問題是,當我使用代碼「new ServerSocket(ipAddress,port)」創建ServerSocket時,我需要給出IP地址以及如何獲取本地網絡中接收器的IP地址。你能告訴我,即使接收者在私人網絡中,Skype聯繫人如何知道對方的IP。 – learner
@learner不是一個特定的地址,而是總是有一個通配符地址,這使得服務器套接字在所有接口(以及所有地址)上偵聽。據我所知,Skype使用的中央目錄服務器非常像我在我的回答中描述的服務器。 –
我正在粘貼我的客戶端訪問服務器的代碼。你可以指導我修改它以訪問wildcarda地址 – learner