android socket p2p,Android Client, Pc Server Socket d'ont work over 3g

I try to create a client server socket beetwen my droid(client) and my PC(server), when i am in local(over wifi) it work perfectely, but when il try over 3G i get this exception when the server try to get clientsocket.getOutputStream()

at java.lang.Thread.run(Unknown Source)

java.net.SocketException: Connection reset

at java.net.SocketInputStream.read(Unknown Source)

at java.net.SocketInputStream.read(Unknown Source)

at java.io.DataInputStream.readUnsignedShort(Unknown Source)

at java.io.DataInputStream.readUTF(Unknown Source)

at java.io.DataInputStream.readUTF(Unknown Source)

What's the probleme, do eny one know the solution of this?

help please :-(

The Server

public class Server {

ServerSocket serverSocket;

public LinkedBlockingQueue recCours;

public LinkedList clientMails;

static Server server;

public static Server getInstance(){

if(server == null){

server = new Server();

}

return server;

}

Server() {

// TODO Auto-generated constructor stub

try {

serverSocket = new ServerSocket(54444);

recCours = new LinkedBlockingQueue(10);

clientMails = new LinkedList();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

this.start();

}

private void start(){

new Thread(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

while (true){

try {

Socket socket = serverSocket.accept();

new Thread(new Client(socket)).start();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}).start();

}

class Client implements Runnable{

Socket socket;

DataInputStream in;

DataOutputStream out;

public Client(Socket socket) {

// TODO Auto-generated constructor stub

this.socket = socket;

if(socket == null) return;

try {

InputStream i = socket.getInputStream();

OutputStream o = socket.getOutputStream();

in = new DataInputStream(i);

out = new DataOutputStream(o);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public void run() {

// TODO Auto-generated method stub

new Thread(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

while(true){

try {

out.writeUTF("Test Message");

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}).start();

new Thread(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

while(true){

try {

String buf = in.readUTF();

Log.d("MESSAGE", buf);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}).start();

}

}

}

and the client

class Client implements Runnable{

Socket socket;

DataInputStream in;

DataOutputStream out;

public void run() {

// TODO Auto-generated method stub

boolean conected = false;

while(!conected){

try {

Thread.sleep(500);

socket = new Socket("213.233.216.25", 54444);

in = new DataInputStream(socket.getInputStream());

out = new DataOutputStream(socket.getOutputStream());

conected = true;

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

Log.e("ERROR :", e.getMessage());

} catch (IOException e) {

// TODO Auto-generated catch block

Log.e("ERROR :", e.getMessage());

} catch (InterruptedException e) {

// TODO Auto-generated catch block

Log.e("ERROR :", e.getMessage());

}

}

new Thread(new Runnable() {

public void run() {

// TODO Auto-generated method stub

while(true){

try {

String buf = in.readUTF();

log.d("MESSAGE", buf);

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}).start();

new Thread(new Runnable() {

public void run() {

// TODO Auto-generated method stub

while(true){

try {

out.writeUTF("Test message from the phone");

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}).start();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值