我想做什么:
我正在尝试构建一个测试应用程序,目前只是通过套接字连接在 Android 手机(4.2.2)(作为客户端)上的应用程序和在 pc(windows 8)(作为服务器)上运行的 java 应用程序之间建立连接。
我已经做了什么:
我已经在电脑上用java编写了客户端和服务器程序,并对其进行了积极的测试(连接已建立)。
网络:
我的手机和电脑都连接到我家的 wifi。ipconfig电脑上显示地址192.168.56.1登录路由器时,它显示我的电脑的地址是192.168.0.108(可能我不懂网络:P)。
代码:
客户端(安卓)
public void connectPC(View view)
{
try
{
clientSocket = new Socket("192.168.0.108",1025);
outstream = clientSocket.getOutputStream();
instream = clientSocket.getInputStream();
data_out = new DataOutputStream(outstream);
data_in = new DataInputStream(instream);
statusView.setText("Connected!");
}
catch (Exception e)
{
statusView.setText("Error: "+e.getMessage());
}
}
服务器:
import java.net.*;
import java.io.*;
public class ServerSide extends Thread
{
ServerSocket serverSocket;
public ServerSide(int port) throws IOException
{
serverSocket = new ServerSocket(1025);
serverSocket.setSoTimeout(10000);
}
public void run()
{
while(true)
{
System.out.println("Waiting for client on port : "+ serverSocket.getLocalPort());
Socket server;
try {
server = serverSocket.accept();
System.out.println("Connected to : " +server.getRemoteSocketAddress());
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
}
}
public static void main(String... args)
{
int port=6066;
try
{
Thread t = new ServerSide(port);
t.start();
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
}
}
问题:-连接根本没有建立,catch 块显示e.getMessage()为空。
PS我试过了192.168.56.1ip地址也是。并添加了使用许可在清单文件中
请在这方面提供任何帮助..!
您需要打印堆栈跟踪而不仅仅是异常消息。这将为您提供更多信息来调试问题......包括异常的名称以及抛出异常的位置。
另外,抓住它也是一个坏主意Exception
并尝试从中恢复。捕捉Exception
可以捕获您从未预料到的各种异常。从您没有预料到的异常中恢复是有风险的......因为您cannot确保这是一件安全的事情。通常最好让应用程序死掉......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)