다른 임베디드리눅스장비와 7777포트로 tcp 통신으로 연결되어있는상태구요
안드로이드장비에서 이 장비로 명령(문자)을 tcp로 주고받고는 되고있는데..

udp 7778 포트로 카메라 영상(사진)을 받는데..

이걸 표현할길이 막막하네요. ㅠㅠ

원래 pc와 임베디드 리눅스 장비끼리 연결하여 무언가 하는건데요..

원래 pc용 소스에서 udp로 받은 데이터를 화면에 출력하는 소스인데

// FCIFCam.cpp : 구현 파일입니다.
//

#include "stdafx.h"
#include "RoboCarAppClient.h"
#include "FCIFCam.h"
#include "define.h"

// FCIFCam

IMPLEMENT_DYNAMIC(FCIFCam, CStatic)

FCIFCam::FCIFCam()
{
 m_bExit = FALSE;
 m_bClientConnected = FALSE;


}

FCIFCam::~FCIFCam()
{
 if(m_bClientConnected)m_aClientSocket.Close();


}


BEGIN_MESSAGE_MAP(FCIFCam, CStatic)
 ON_MESSAGE(UM_RECEIVE_UDP, OnRecvSocket)
 ON_MESSAGE(UM_ON_CLOSE,OnCloseSocket)
 ON_WM_PAINT()
END_MESSAGE_MAP()

 

// FCIFCam 메시지 처리기입니다.
/* JPG 영상이 수신됬을때  호출되는 합수 입니다. */

LRESULT FCIFCam::OnRecvSocket(WPARAM wpar,LPARAM lpar){
 BYTE* pBuffer = (BYTE*)lpar;
 DWORD len = (DWORD)wpar;
 
 
 m_aCxImage.Destroy();
 if(m_aCxImage.Decode(pBuffer,len,CXIMAGE_FORMAT_JPG)==false){ //CxImage클래스에서 JPG이미지를 로드한다.
  OutputDebugString(_T("CxImage - Decode Fail\n"));
  return FALSE;
 }
 Invalidate(FALSE);            //화면을 다시 그리도록 호출한다.(OnPaint함수가 호출됨)
 return TRUE;
}


LRESULT FCIFCam::OnCloseSocket(WPARAM wpar,LPARAM lpar){
 m_aClientSocket.Close();
 m_bClientConnected = FALSE;

 return TRUE;
}

BOOL FCIFCam::Connect(CString strIP,int port)
{
 

 m_aClientSocket.Close();
 if(!m_aClientSocket.Create(port,SOCK_DGRAM)){  //UDP데이터를 수신 받을 SOCKET을 생성한다.
  AfxMessageBox(L"Cam Create Socket Fail");
  return FALSE;
 }
 m_bClientConnected = TRUE;
 CreateThread();          //쓰레드를 생성해서 JPG영상을 수신한다.

 return TRUE;
}

void FCIFCam::DisConnect(void)
{
 if(m_bClientConnected){
  m_aClientSocket.Close();
  m_bClientConnected = FALSE;
  ExitThread(1000);
 }
}


void FCIFCam::OnPaint()
{
 CPaintDC dc(this); // device context for painting

 CRect rt;
 GetClientRect(&rt);
 
 if(m_aCxImage.IsValid()){
  m_aCxImage.Draw(dc.GetSafeHdc(),rt); //CxImage클래스에 로드된 JPG영상을  화면에 그린다.
 }
}

bool FCIFCam::CreateThread()
{
 m_pThread = AfxBeginThread(this->ThreadFunc,(LPVOID)this);//, THREAD_PRIORITY_HIGHEST); 

 if(m_pThread == NULL){
  AfxMessageBox(_T("Thread Create FAIL"));
  return FALSE;
 }
 return TRUE;
}

 

unsigned int  FCIFCam::ThreadFunc(LPVOID pPara){
 
 static BYTE buff[120*160*2];
 int nRead;
 CString strSendersIp; 
 UINT uSendersPort;
 FCIFCam* pCam;
 pCam = (FCIFCam*)pPara;
 
 while(1) {
  if (pCam->m_bExit == TRUE) break;
  
  // Could use Receive here if you don’t need the senders address & port
  nRead = pCam->m_aClientSocket.ReceiveFrom(buff, 120*160*2, strSendersIp, uSendersPort);

  switch (nRead)   {  
  case 0:    
   // Connection was closed. 
   OutputDebugString(_T("Connection was closed\n"));
   pCam->PostMessage(UM_ON_CLOSE,0,0);
   break;
  case SOCKET_ERROR: {
   CString dbg;
   if (GetLastError() != WSAEWOULDBLOCK)       {
    dbg.Format(_T("Socket Error : %d \n "),GetLastError());
    OutputDebugString(dbg);
    pCam->m_bExit=FALSE;
    return FALSE;

   }
   break;
  }

  default:
   { // Normal case: Receive() returned the # of bytes received.   
    //영상이 수신됬을 경우 FCIFCam 클래스에서 처리할수 있도록(FCIFCam::OnRecvSocket) 메세지를 전송한다.
    pCam->SendMessage(UM_RECEIVE_UDP,(WPARAM)nRead,(LPARAM)buff);
    
   }
  }
 }

 pCam->m_bExit=FALSE;
 return TRUE;
}

DWORD FCIFCam::ExitThread(unsigned long dwMsTime)
{
 DWORD retCode;
 m_bExit = TRUE;


 if(m_pThread){
  retCode = WaitForSingleObject(this->m_pThread->m_hThread,dwMsTime);

  if(retCode == WAIT_TIMEOUT){
   TerminateThread(this->m_pThread->m_hThread,0);
  }
  m_pThread = NULL;
  m_bExit = FALSE;
 }
 return retCode;
}

제가 기본이 안되어 있어서 어떻게 해야될지 모르겠네요..
나름 생각한게
public class sc100Activity extends Activity implements OnClickListener{
private DatagramSocket datasocket;

Bitmap icon00 = BitmapFactory.decodeResource(getResources(),
          R.drawable.icon);
imView.setImageBitmap(icon00);
try{   
   datasocket = new DatagramSocket(7778);
  
      Thread cThread = new Thread(){
       public void run(){
        try{         
         readdata();
        }catch(Exception e){
         error.setText("thread error");         
        }
       }
      };
      cThread.start();
  }catch(Exception e){
   error.setText("socket error");
  }
        public void readdata(){         
     try{   
    final ByteBuffer buffer2 = ByteBuffer.allocate(120*160*2);
    buffer2.order(ByteOrder.BIG_ENDIAN);           
    
    
    //buffer.put((byte) in.read());
    //data=buffer.array();    

    handler.post(new Runnable(){
           public void run(){
            DatagramPacket dp = new DatagramPacket(new byte[120*160*2], 120*160*2);
            Bitmap img = null;
            Bitmap oldimg;
            try{             
             do{              
              datasocket.receive(dp);
              buffer2.put(dp.getData());
              oldimg = img;              
              img = BitmapFactory.decodeByteArray(buffer2.array(), 120*160, 0);             
              imView.setImageBitmap(img);              
             }while(img!=oldimg);
            }catch(Exception e){
             error.setText("receive error");
            }
        }
    });         
     }catch(Exception e){
      error.setText("receive error");
     }
    }
 


인데... 이미지는 아에.. 보이지 않네요 ㅠㅠ
혹시 udp로 데이터는 받아오는지 확인을 하고싶어도 확인하는방법도 모르겠구 ㅠㅠ
아시는분 답변좀 부탁드립니다.