3. 客户端登录界面
public class MainActivity extends Activity {
private EditText mUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mUser = (EditText) findViewById(R.id.username);
}
public void login(View view) {
final String userName = mUser.getText().toString().trim();
Login login = new Login(userName);
login.setOnLoginListener(new Login.LoginCallback() {
@Override
public void onLogin(boolean success) {
if(success) {
Intent intent = new Intent(MainActivity.this, Chat.class);
intent.putExtra("user", userName);
startActivity(intent);
finish();
}else {
Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
});
login.login();
}
}
4. 处理登录
public class Login {
private String mUserName;
private LoginCallback mCallback;
public Login(String userName) {
mUserName = userName;
}
public void setOnLoginListener(LoginCallback callback) {
mCallback = callback;
}
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case Constant.SUCCESS:
mCallback.onLogin(true);
break;
case Constant.FAILED:
mCallback.onLogin(false);
break;
}
};
};
public void login() {
new Thread(new Runnable() {
@Override
public void run() {
Socket socket = null;
try {
socket = new Socket();
socket.connect(new InetSocketAddress("192.168.100.100", 8888), 4000);
PrintWriter writer = new PrintWriter(socket.getOutputStream());
writer.println("login:" + mUserName);
writer.flush();
BufferedReader reader = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String line = reader.readLine();
System.out.println(line);
if("success".equals(line)) {
PConnection.socket = socket;
mHandler.sendEmptyMessage(Constant.SUCCESS);
}else {
mHandler.sendEmptyMessage(Constant.FAILED);
}
}catch(Exception e) {
e.printStackTrace();
}
}
}).start();
}
public interface LoginCallback {
public void onLogin(boolean success);
}
}










