안녕하세요? 안드로이드 공부하고 있는 초보 학생입니다.
다름이 아니라 이번에 채팅 프로그램을 구현하면서 이 프로그램을 탭 위젯 안에 넣는것을 해보고 싶어서 그런데
인터넷 여기저기에서 관련한 내용을 찾아봤으나 보이질 않아서 이렇게 글을 남깁니다.
현재 인터넷에서 퍼온
package Soket.test;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Window;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class SoketChat extends Activity {
private final static String IP = "";
private final static int PORT = 10001;
private final static String LOGIN_ID="AndroidClient";
private TextView lblReceive;
private String txtReceive;
private String message;
private Socket socket;
private InputStream in;
private OutputStream out;
private final Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
RelativeLayout layout = new RelativeLayout(this);
layout.setBackgroundColor(Color.rgb(255, 255, 255));
setContentView(layout);
// -- label for messages
lblReceive = new TextView(this);
lblReceive.setId(1);
lblReceive.setText("");
lblReceive.setTextSize(16.0f);
lblReceive.setTextColor(Color.rgb(0,0,0));
RelativeLayout.LayoutParams param1 = new RelativeLayout.LayoutParams(320,400);
lblReceive.setLayoutParams(param1);
layout.addView(lblReceive);
// -- Thread for Connection
Thread cThread = new Thread(){public void run(){
try{
connect(IP,PORT);
} catch(Exception e){} }
};
cThread.start();
}
private void connect(String ip, int port){
int size;
byte[] w = new byte[10240];
txtReceive="";
try{
socket = new Socket(ip,port);
if(socket != null) {
in = socket.getInputStream();
out = socket.getOutputStream();
PrintWriter pw = new PrintWriter( new OutputStreamWriter( out ), true );
pw.println(LOGIN_ID);
pw.flush();
while(socket != null && socket.isConnected()){
size = in.read(w);
if(size<=0)continue;
txtReceive = new String(w,0,size,"UTF-8");
handler.post(new Runnable(){
public void run() {
lblReceive.setText( lblReceive.getText()+txtReceive );
}
});
}
}
} catch (Exception ex) {Log.e("socket",ex.toString());}
}
}
이 소스를 이용해서 받는 것 까지 구현이 되었는데요.. 혹시 여기에서 PrintWriter를 이용해서 보내는 기능은 어찌 추가를 해야할지..
감이 잡히질 않아서 이렇게 남깁니다.
간단히 말해서 제 질문은. 1. Tab 페이지 안에 채팅 프로그램을 어떤식으로 넣어야 하는가? 2. 위의 소스에서 PrintWriter 기능을 어떤식으로 넣어야 메시지가 보내질까 입니다.
고수님들의 많은 도움 부탁드립니다. 추운 날씨에 감기 조심하세요~