我想使用 TCP 套接字连接远程服务器。
当客户端和服务器连接到同一个网络时,一切正常。有一个从 Android 客户端发送的请求和一个来自服务器的响应,在连接到不同的网络后,服务器从 Android 主机收到我的消息但没有响应。
我正在使用免费的 Google Play Telnet 和 TCP 应用程序测试此连接,它工作正常,所以我认为问题出在我的代码中。
public static void onsocket() {
// TODO Auto-generated method stub
Socket socket = null;
try {
socket = new Socket(address, port);
dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream.writeUTF();
Log.w(TAG, "Response from server: " + dataInputStream.readUTF());
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if (socket != null){
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dataOutputStream != null){
try {
dataOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (dataInputStream != null){
try {
dataInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
我也尝试使用 writeUTF/readUTF (write&flush/read) 以外的方法,但我得到了相同的结果。