안녕하세요
지금 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();
}
}
}
저건 갤3에서 돌린거였고 노트에서 돌리니
아래와 같은 로그가 나오며 앱이 꺼지네요 ㅠㅠ..