안드로이드 개발 질문/답변
(글 수 45,052)
public class CalculaSever extends Activity {
/** Called when the activity is first created. */
ServerSocket serverSocket = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final TextView tv = (TextView)findViewById(R.id.getData);
final TextView tv2 = (TextView)findViewById(R.id.result);
CalculaSever s = new CalculaSever();
int port = 5777;
try{
s.socket_connect(port);
s.listening(); }
catch(IOException ioe){
}
}
private void socket_connect(int port) throws IOException { //serverSocket 생성
// TODO Auto-generated method stub
try{
serverSocket = new ServerSocket(port);
}
catch(IOException e){
throw e;
}
}
private void listening() {
// TODO Auto-generated method stub
while(true){
try{
Socket socket = serverSocket.accept();
Thread t = new ServerThread(socket);
t.start();
}
catch(IOException e){
}
}
}
}
~소켓통신으로 계산기 구현 중에 listening() 실행하면 layout 이 제대로 안나오네요
공부한지 얼마 안되서 이유를 모르겠네요.. 도와주세요~
class ServerThread extends Thread{
Socket socket = null;
BufferedReader br = null;
BufferedWriter bw = null;
public ServerThread(Socket soc){
socket = soc;
try{
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
}
catch(IOException ioe){
}
}
public void run(){
String packet="";
while(true){
try{
packet = br.readLine();
if(packet != null){
//tv.setText(packet);
String result = analPacket(packet);
bw.write(result);
bw.newLine();
bw.flush();
}
}
catch(IOException ioe){
try{
br.close();
bw.close();
socket.close();
}catch(IOException ex){
}
break;
}
}
}
하나 더 질문 드립니다. client 로 받은 packet을 textView에 뿌려주려고 하는데, 메인 클래스 말고
Thread 클래스에서 사용하려면 어떻게 해야되나요?




핸들러를 이용하셔야 합니다