안녕하세요

 

지금 Socket통신을 사용해서 개발중인데 USB연결했을 때

에뮬레이터에서는 앱이 돌아가는데 폰에서는 안돌아갑니다.

ㅠㅠㅠㅠ

 

 

서버랑 클라이언트와 같은 ip(wifi로)를 핸드폰에서도 사용하면 폰에서도 돌아가는데요 

 핸드폰이 4g일때 역시 안돌아가구요,ㅠㅠㅠㅠ...

 

핸드폰이 다른 ip일 때 되게 하려면 고정IP로 받아서 하면 된다해서 했는데 안되네요 ㅠㅠ

 

log는 이렇게 나옵니다ㅠ_ㅠ

java.net.ConnectException: failed to connect to /203.153.146.251 (port 7000): connect failed: ETIMEDOUT (Connection timed out)

 

 

도와주세요ㅠㅠㅠㅠ

 

 

 

Client 소스

 

public class InitialActivity extends Activity {
 
  
 Intent intent;
 
 ImageButton login_btn, signup_btn;
  
   
//소켓 통신을 위한 변수  
 private String html = " ";
 private Handler mHandler;  
 private Socket socket;
 private BufferedReader networkReader;   
 private BufferedWriter networkWriter;
 private String ip = "203.153.146.251";
 private int port = 7000; //CosmeticView port 5010

 //소켓 close 상태 
 @Override
 protected void onStop(){
  super.onStop();
  try{
   socket.close();  
  }catch(IOException e){  
   e.printStackTrace();
  }
 }

 @SuppressLint("NewApi")
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.a_initial);
  StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitNetwork().build());

  mHandler = new Handler();

 
    
  try{
   
   setSocket(ip, port); //소켓 셋팅
    
         
  }catch(IOException e1){
   e1.printStackTrace();
  }
  
  //Sending data 'action' to Server
  PrintWriter out1 = new PrintWriter(networkWriter,true);
  String action = "Init";
  out1.println(action);
 
  
  
  login_btn=(ImageButton)findViewById(R.id.imageButton5);
  signup_btn = (ImageButton) findViewById(R.id.imageButton6); 
  
  login_btn.setOnClickListener(new OnClickListener() {
 
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    intent=new Intent(InitialActivity.this, M02_LoginActivity.class);
    startActivity(intent);
   }
  });
  signup_btn.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    intent=new Intent(InitialActivity.this, M01_SigninActivity.class);
    startActivity(intent);
   }
  });
  
    
 }
 

 
 

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

   
 
 public void setSocket(String ip, int port) throws IOException{
  try{
   socket = new Socket(ip, port);
   networkWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
   networkReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));   
  }catch(IOException e){
   System.out.println(e);
   e.printStackTrace();
  }
 }
 
}