2012-02-22 2 views
0

앱의 목적은 문자열 개체를 내 컴퓨터의 서버로 보내는 것입니다. 모든 포트 전달 구성은 내 컴퓨터에서 Java 클라이언트로 서버를 테스트 할 때 설정됩니다.Android & Object 출력 스트림 : 스탠드 오프

문제는 안드로이드 클라이언트에서 서버에 이야기하는 것에 있습니다. 서버가 절대로 공격 당하지 않는 것 같습니다.

앱의 기본 개요 : 1 버튼이있는 간단한 화면 & 1 텍스트 뷰. 버튼은 객체를 서버에 보내고, 서버는 메시지로 응답하고, 텍스트 뷰를 업데이트합니다. 앞서 말했듯이 서버는 절대로 안타깝습니다. 누구든지이 문제를 해결하기 위해 내가 할 수있는 아이디어가 있습니까?

public class ObjectTestActivity extends Activity { 

Button submit; 
private String string = "Hello Android"; 
private ObjectOutputStream oos; 
private ObjectInputStream ois; 
private final int PORT = 3000; 

TextView tv; 


@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button send = (Button) findViewById(R.id.send); 
    tv = (TextView) findViewById(R.id.tv); 

    try{ 

     InetAddress host = InetAddress.getLocalHost(); 
     Socket socket = new Socket("xx.xx.xxx.xxx", PORT); 

     oos = new ObjectOutputStream(socket.getOutputStream()); 
     ois = new ObjectInputStream(socket.getInputStream()); 

    }catch(UnknownHostException e){} 
    catch(IOException e){} 
} 


public void onClick(View view){ 

    try{ 
     oos.writeObject(string); 
     String serverMsg = (String) ois.readObject(); 
     ois.close(); 
     oos.close(); 
        tv.setText("Message from Server: " + serverMsg); 
    }catch(IOException e){} 
    catch(ClassNotFoundException e){} 
} 

}

+0

매니페스트 파일의 권한을 게시 할 수 있습니까? – hovanessyan

답변

0

먼저 간단한 자바 클라이언트에서 안드로이드 클라이언트 코드를 테스트 해보십시오. 그게 적어도 당신이 안드로이드 문제를 알고 작동합니다.

그런 다음 매니페스트 파일을 확인하십시오. "android.permission.INTERNET"이 필요합니다.

onCreate의 예외에 스택 트레이스를 인쇄하지 않으므로 예외가 발생했는지 알 수 없습니다.

더 높은 포트 번호 32344를 사용해보십시오.

+0

안녕하세요, 간단한 Java 클라이언트가 무슨 뜻입니까? 서버에 대한 간단한 ping처럼? INERNET에 Android 권한을 처음부터 설정 했으므로 문제가되지 않습니다. – Jnanathan