ServerSocket不会在WAN(Internet)上打开端口但在本地网络上正常工作

时间:2014-04-11 20:45:47

标签: android sockets networking serversocket

我想从一个Android设备向另一个设备发送一个套接字

这是我的发件人代码:

Socket socket = new Socket();
socket.connect(new InetSocketAddress(ReceiverIP, 6666), 10000);
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataOutputStream.writeUTF(message);
socket.close();

这是我的接收器

ServerSocket ss=new ServerSocket(6666);
Socket resultSocket=ss.accept();
DataInputStream dis=new DataInputStream(resultSocket.getInputStream());
String stringresult=dis.readUTF();
ss.close();

和android权限:

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

在我的本地网络上,此代码可以正常使用本地IP地址,但是当我在Internet连接上使用外部IP时,接收方无法打开端口,并且发送方类上发生SocketTimeoutException。 我尝试使用DatagramSocket(UDP协议),但它在WAN网络上遇到了同样的问题。 我该怎么做才能解决这个问题? 谢谢。

0 个答案:

没有答案