Page 848 - 3-3
P. 848
Intent receivedIntent = getIntent(); // 인탠트 생성
// IP 변수에 "IP" 에서 받아온 Extra 정보를 받아옴
final String IP = receivedIntent.getStringExtra("IP");
// WebIP 변수에 "WebIP" 에서 받아온 Extra 정보를 받아옴
final String WebIP = receivedIntent.getStringExtra("WebIP");
// PORT 변수에 "PORT" 에서 받아온 Extra 정보를 받아옴
final int PORT = receivedIntent.getIntExtra("PORT",1);
// StrictMode 는 개발자가 실수하는 것을 감지하고 해결할 수 있도록 돕는 일종의 개발 툴
// - 메인 스레드에서 디스크 접근 네트워크 접근 등 비효율적 작업을 하려는 것을 감지하,
여
// 프로그램이 부드럽게 작동하도록 돕고 빠른 응답을 갖도록 함, 즉 Android Not
Responding 방지에 도움
StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
// 레이아웃에서 버튼과 입력창을 불러옴
Button loginButton = (Button) findViewById(R.id.login);
Button exit = (Button) findViewById(R.id.exit);
UI = (EditText) findViewById(R.id.UI);
PI = (EditText) findViewById(R.id.PI);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = UI.getText().toString(); // 아이디
String password = PI.getText().toString(); // 비밀번호
try {
connect = new Socket(IP, PORT); // 소켓 생성
socketIn = new BufferedInputStream(connect.getInputStream()); //
InputStream 생성
// OutputStream 생성
socketOut = new PrintWriter(new
OutputStreamWriter(connect.getOutputStream()));
socketOut.write(start); // 서버에 '1' 값을 송신하여 통신 시작을알림
socketOut.flush(); // 버퍼를 비워서 전송을 빠르게함
socketOut.write(Login); // 서버에 '2' 값을 송신하여 로그인 시작을 알림
socketOut.flush();
socketOut.println(username); // 아이디 송신
socketOut.println(password); // 비밀번호 송신
socketOut.flush();
int flag = 0; // 로그인 성공과 실패를 알리는 변수
flag = socketIn.read(); // 서버에서 값을 수신 받음
if (flag == 0) { // 서버에서 0 값을 수신 받을 경우
connect.close(); // 소켓통신 종료
Toast.makeText(getBaseContext(), " 로그인 실패",
Toast.LENGTH_SHORT).show();
- 848 -