我想从一个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网络上遇到了同样的问题。 我该怎么做才能解决这个问题? 谢谢。