2 w1213096890 w1213096890 于 2015.06.14 21:45 提问

Android软件使用TCP进行通信,连接不到服务端,在同一子网,代码跟异常日志都有,请大神指教

客户端线程:
class BB1 extends Thread{
public void run()
{
try
{
System.out.println("hahahha");
Socket client=new Socket(ipadress,PORT);
System.out.println(client.getPort());
mingling="ok";
StringReader sr=new StringReader(mingling);
BufferedReader br=new BufferedReader(sr);

PrintWriter pw;
pw=new PrintWriter(client.getOutputStream());

            pw.write(br.readLine());
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    Toast.makeText(getApplicationContext(), "数据已经传输成功", Toast.LENGTH_SHORT).show();
                }
            });
            pw.close();
            br.close();  


        }
        catch(IOException e)
        {
            e.printStackTrace();
            System.out.println("----------------------------------------------");
            System.out.println(e.getMessage());
            System.out.println("----------------------------------------------");
        }   
    }
}
    服务器端线程:
    class thread1 implements Runnable

{
private Socket socket;
private ServerSocket ss;
public void run()
{
try{

ss=new ServerSocket(25000);
System.out.println("Server OK");
while(true)
{
socket=ss.accept();

                BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
                System.out.println("connected!");

                System.out.println("you input is:"+br.readLine());


            }

        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }

}

异常日志显示的错误:
图片说明

请各位大神指点迷津~~~~~~~~~~~~~~~~~~~~~~~~

4个回答

ycg514230
ycg514230   Rxr 2015.06.14 21:58
已采纳

你这是在Android模拟器调试还是使用真机调试的?
如果是模拟器的话,IP用10.225.18.190是连接不上的。
真机的话就要考虑是否其他问题,比如程序是否有访问网络的权限。

u010067689
u010067689 只要手机能上网,这个ip就能连上,因为这是服务器的ip,说用那个10.0.2.2是说服务器是127.0.0.1,是指这种调试
2 年多之前 回复
w1213096890
w1213096890 回复帘卷西风: 手机上网完全没有问题
2 年多之前 回复
ycg514230
ycg514230 回复w1213096890: 有没可能不是同一个网络,或者你在宿舍能不能访问外网。
2 年多之前 回复
w1213096890
w1213096890 回复帘卷西风: 是外网
2 年多之前 回复
w1213096890
w1213096890 回复帘卷西风: 这是用真机测试的
2 年多之前 回复
ycg514230
ycg514230 回复w1213096890: 你这个IP是外网ip吗?
2 年多之前 回复
w1213096890
w1213096890 访问权限加了,我在大学的教学楼可以连接成功,在宿舍楼确连接不上,都是用的学校的无线网,不知道咋回事
2 年多之前 回复
zhangx1991
zhangx1991   2015.06.15 00:39

网络访问的权限申请了吗

w1213096890
w1213096890 访问权限加了,我在大学的教学楼可以连接成功,在宿舍楼确连接不上,都是用的学校的无线网,不知道咋回事
2 年多之前 回复
hikyson
hikyson   2015.06.15 14:50

ping一下你的ip看看呢

hikyson
hikyson 回复w1213096890: 装一个终端模拟器就可以了。
2 年多之前 回复
w1213096890
w1213096890 这是android系统,android手机怎么ping ip???
2 年多之前 回复
u010067689
u010067689   2015.06.15 22:41

tcp涉及到3次握手,况且你就确定服务器的socket就一定不为null?我建议你先判断一下,如果不为null,可以让服务器向客户端输出信息

u010067689
u010067689 服务器端的socket有输出流
2 年多之前 回复
w1213096890
w1213096890 我是先开启服务器的socket,后才用客户端的socket去连接的,我可以确定服务器的socket不是NULL,但怎么从服务器向客户端输出信息呢?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片