InetAddress.getByName(host)
如果您尝试在没有可用网络的情况下解析主机名,很难相信代码不会抛出 IOException 或 UnknownHostException 。也许您可以发布更多代码(使用 try-catch-block)。
另外我建议您尝试使用 DataOutputStream 将您的字符串写入套接字:
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataOutputStream.writeUTF(myString);
此外,我建议您通过收听 android 中的适当广播或询问连接管理器来检查您的互联网连接的可用性。
public static boolean isNetworkConnectionAvailable(Context context) {
boolean isNetworkConnectionAvailable = false;
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService("connectivity");
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
if(activeNetworkInfo != null)
{
isNetworkConnectionAvailable =
activeNetworkInfo.getState() == NetworkInfo.State.CONNECTED;
}
return isNetworkConnectionAvailable;
}
或者在这里查看:broadcast-receiver-for-checking-internet-connection-in-android-app。