連接一個android應用程序(作爲客戶端)和運行在我的機器上(作爲服務器)的應用程序我試圖通過一個android應用程序(它將作爲客戶端)和一個java應用程序(作爲服務器)在我的電腦上運行。雖然我的應用程序非常簡單,但它在我的Android設備上崩潰。 任何人都可以幫我嗎?我將報告下面的代碼片段..通過套接字
服務器端
public class Server {
public static void main(String args[]){
try {
ServerSocket ss=new ServerSocket(9090);
Socket client=ss.accept();
System.out.println("A request is arrived");
ObjectOutputStream oos=new ObjectOutputStream(client.getOutputStream());
PrintWriter out=new PrintWriter(oos,true);
out.write("Hello..I'm the Server");
out.flush(); out.close(); client.close();
} catch(Exception e){e.printStackTrace();}
}
}
客戶端
public class ChildActivity extends Activity{
public static final int SERVERPORT = 9090;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_child);
Button b=(Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
InetAddress addre=InetAddress.getByName("a.b.c.d"); //ip address got typing command ipconfig in windows
Socket socket=new Socket(addre,9090);
ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
String msg=(String) in.readObject();
Toast.makeText(getBaseContext(), msg, Toast.LENGTH_LONG).show();
in.close();
} catch (Exception e) {e.printStackTrace();}
}
}
});... and so on }}
我還包含下列文件清單的權限,因爲我的手機連接上互聯網通過Wi-Fi。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
每種幫助都很受讚賞...再次感謝。 ps。對不起,我的英語:P
如果沒有來自logcat的堆棧跟蹤,我們無能爲力。這完全告訴你**問題出在哪裏,但我的猜測是'networkOnMainThreadException'。 – Simon