package AndroidClient.map;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import android.util.Log;
class ChatClient extends Thread
{
private Socket mSocket = null;
private BufferedReader mNetworkReader = null;
private BufferedWriter mNetworkWriter = null;
private PrintWriter mOut = null;
private String mName = "";
private final String mIp = "xxx.xxx.xxx.xxx";
private final int mPort = 9999;
private Thread mThRcv = null;
private AndroidClient mMain = null;
public ChatClient(String name, AndroidClient main)
{
this.mName = name;
this.mMain = main;
initClient();
}
private void initClient()
{
try
{
setSocket();
}
catch (IOException e1)
{
Log.i("<EXCEPTION>", "setSocket Exception");
e1.printStackTrace();
}
}
private void setSocket() throws IOException {
mSocket = new Socket(this.mIp, this.mPort);
mNetworkWriter = new BufferedWriter(new OutputStreamWriter(mSocket.getOutputStream()));
mNetworkReader = new BufferedReader(new InputStreamReader(mSocket.getInputStream()));
mOut = new PrintWriter(mNetworkWriter, true);
mThRcv = new Thread(this);
mThRcv.start();
sendMsg(this.mName);
}
public void closeAll() throws Exception
{
sendMsg("Good Bye");
this.mSocket.close();
this.mOut.close();
this.mNetworkReader.close();
this.mNetworkWriter.close();
}
public void run()
{
while(true) recieveData();
}
public synchronized void recieveData()
{
String line = "";
try
{
line = mNetworkReader.readLine();
this.mMain.setResultText(line);
}
catch (NullPointerException e)
{
Log.i("<EXCEPTION>", e.getMessage());
}
catch (IOException e)
{
Log.i("<EXCEPTION>", e.getMessage());
}
catch (Exception e)
{
Log.i("<EXCEPTION>", "readMsg THREAD Exception");
}
}
public void sendMsg(String msg) throws IOException
{
if("" == msg) return;
this.mOut.println(msg);
this.mOut.flush();
}
}
이 프로그램은 Client Program으로 Thread를 돌려서 Recieve Data를 하고 있는중에 받은 데이터를
Main클래스의 TextView로 넘겨주기위한 this.mMain.setResultText(line); 메서드를 실행할 때,
Exception이 뜨는데 어떠한이유인지를 몰라서 여쭙습니다. 좋은하루되세요.