안드로이드 Socket 통신을 이용해서 데이터를 내 보내려고 합니다.
나름 코드를 참고하고 해서 코드를 작성 했습니다.
데이터를 내보는 write() 부분에서 아래와 같은 에러가 발생합니다.
05-24 08:17:06.101: W/dalvikvm(822): threadid=11: thread exiting with uncaught exception (group=0x409961f8)
05-24 08:17:06.111: E/AndroidRuntime(822): FATAL EXCEPTION: Thread-81
05-24 08:17:06.111: E/AndroidRuntime(822): java.lang.NullPointerException
05-24 08:17:06.111: E/AndroidRuntime(822): at mworks.android.ISO.RDPSocket.SnedByte(RDPSocket.java:56)
그리고 제가 만든 코드는 아래와 같습니다. 저 아래 적색 글씨 부분에서 에러가 발생 합니다.
무엇이 문제인지.... 좋은 답변 부탁 드립니다.
public int m_Timeout = 300;
protected Socket Clientsock=null;
private DataInputStream din=null;
private DataOutputStream dout=null;
protected void doSocketConnect(InetAddress host, int port)throws IOException{
Log.d(TAG, "doSocketConnect : " + host + " / " + port);
InetSocketAddress add = new InetSocketAddress(host, port);
this.Clientsock = new Socket(host, port);
this.Clientsock.setSoTimeout(m_Timeout);
this.Clientsock.setTcpNoDelay(true);
Log.d(TAG, "doSocketConnect : end");
}
public void Connect(InetAddress host, int port)throws IOException {
Log.d(TAG, "Connect : " + host + " / " + port);
doSocketConnect(host, port);
this.din = new DataInputStream(new BufferedInputStream(Clientsock.getInputStream()));
this.dout= new DataOutputStream(new BufferedOutputStream(Clientsock.getOutputStream()));
Log.d(TAG, "Connect : end");
}
public void SnedByte(byte[] buffer){
Log.d(TAG, "SnedByte : " + buffer.length);
try {
dout.write(buffer); //=> error
dout.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e(TAG, "SnedByte : " + e);
e.printStackTrace();
}
Log.d(TAG, "SnedByte : end" );
}
버퍼가 null이라는거 같습니다. 값이 안들어갔다는거죠.