마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 소켓으로 객체보낼떄

0 추천
소켓서버에 연결해서 직렬화시킨 객체를 서버로 보내는 소스입니다.
하지만 버튼을 누르면 아무런 반응이없습니다..
열심히 했는데 뭔가 허무하네요.. 
 
코드 내용은 이렇습니다 뭐가 잘못된걸까요..?
 
public class MainActivity extends Activity {

EditText name,id,pass,phone;
Button Sign_up;
String Name,Id,Pass,Phone;
private String serverIp="xxx.xx.xxx.156";
private int serverPort=xxxx;
ObjectOutputStream oos;
DataInputStream dis;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        name=(EditText)findViewById(R.id.edit_name);
        id=(EditText)findViewById(R.id.edit_id);
        pass=(EditText)findViewById(R.id.edit_pass);
        phone = (EditText)findViewById(R.id.edit_phone);
        Sign_up = (Button)findViewById(R.id.btn_sign_up);
    }
    public void myOnClick(View v){
     switch(v.getId()){
     case R.id.btn_sign_up:
     NetworkTask clientTask=new NetworkTask(name.getText().toString(),
     id.getText().toString(),
     pass.getText().toString(),
     phone.getText().toString());
     clientTask.execute();
     break;
     }
    
    }
    public class NetworkTask extends AsyncTask<Void, Void, Void> {
     
String dstAddress=serverIp;
        int dstPort = serverPort;
        public Object u1;

        NetworkTask(String Name,String Id,String Pass,String Phone) {
           UserClass u1=new UserClass(Name,Id,Pass,Phone);        
         
        }

        @Override
        protected Void doInBackground(Void... arg0) {

            try {
                Socket socket = new Socket(dstAddress, dstPort);
                
                OutputStream os=socket.getOutputStream();
                ObjectOutputStream oos=new ObjectOutputStream(os);
                oos.writeObject(u1);
                oos.flush();
                InputStream inputStream = socket.getInputStream();
                DataInputStream dis = new DataInputStream(inputStream);
                     
                socket.close();
            } catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
         
            super.onPostExecute(result);
        }

    }
}

 

 
로그켓을 봤는데 에러는 하나도없고 주의밖에없습니다 
 
혹시 지금 노트북으로 쓰고있고 디바이스도 지니모션을 사용하고있는데 서버와 클라가 아이피주소가 같아서 그런건가요?
dksemdl (480 포인트) 님이 2015년 1월 25일 질문

2개의 답변

+2 추천
u1이 null이네요.
익명사용자 님이 2015년 1월 25일 답변
0 추천

public Object u1;

        NetworkTask(String Name,String Id,String Pass,String Phone) {

           UserClass u1=new UserClass(Name,Id,Pass,Phone);       
        }
이것을

public UserClass u1;

        NetworkTask(String Name,String Id,String Pass,String Phone) {
           u1=new UserClass(Name,Id,Pass,Phone);       
        }

 

nicehee (73,100 포인트) 님이 2015년 1월 26일 답변
...