public class ConnectActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connect);
Button Connector=(Button)findViewById(R.id.connectbnt);
netCheck();
Connector.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
EditText server_ip=(EditText)findViewById(R.id.server_ip);
String ip=server_ip.getText().toString();
EditText server_port=(EditText)findViewById(R.id.server_port);
String port=server_port.getText().toString();
try {
//ThreadTool.ServerSocket=new Socket(ip,Integer.parseInt(port));
SocketAddress addr=new InetSocketAddress(ip, Integer.parseInt(port));
ThreadTool.ServerSocket.connect(addr, 2000);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NullPointerException e) {
// TODO: handle exception
e.printStackTrace();
}
if(ThreadTool.ServerSocket!=null){
Intent intent=new Intent(getApplicationContext(),MainActivity.class);
startActivity(intent);
}else if(ThreadTool.ServerSocket==null){
new AlertDialog.Builder(ConnectActivity.this)
.setTitle("error")
.setMessage("IP/PORT를 확인해 주십시오")
.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
}
});
}
public void netCheck(){
ConnectivityManager connManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo is3G=connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
final android.net.NetworkInfo isWIFI=connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(isWIFI.isConnected()){
}else{
new AlertDialog.Builder(ConnectActivity.this)
.setTitle("error")
.setMessage("WIFI 설정창으로 이동 하시겠습니까?")
//.setIcon(R.drawable.wifiimage)
.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
}
}).setNegativeButton("닫기", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).show();
}
}
}
socket timeout딜레이가 너무길어서 그걸 줄여주고 싶은데...
빨간 부분에서 ServerSocket=new Socket(ip,port)를 안하면 소켓타임아웃 딜레이가 너무 길고,
SocketAdress addr 부분을 하면 타임아웃 딜레이는 짧아지는데 소켓통신 접속이안되네요...
고수님들 부탇합니다..