안드로이드 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" );
 }