我是Android和Java編程的新手,我卡住了。Android套接字 - 我的代碼在工作2.3.6,但在4.x中沒有
我能夠創建一個TCP/IP通信客戶端(LAN),它在基於Windows的Web服務器上發送文本消息。我的三星Galaxy S Advance手機目前運行在2.3.6上,代碼運行良好。然而,在運行Android 4.0和Android 4.1的其他兩個設備上嘗試apk文件時,應用程序正在運行,但沒有消息到達PC上(測試在同一網絡上執行)。
我用發送報文的功能如下:
public void sednit(String IP,String MSG) {
try {
// Socket s = new Socket ("192.168.128.102",39999);
Socket s = new Socket (ipaddress,39999);
//outgoing stream redirect to socket
OutputStream out = s.getOutputStream();
PrintWriter output = new PrintWriter (out);
output.println(MSG);
output.flush();
BufferedReader input = new BufferedReader (new InputStreamReader(s.getInputStream)));
//read line(s)
String st = input.readLine();
//Close connection
s.close();
} catch (Exception e) {
// Toast.makeText(getApplicationContext(), e.toString(),Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "Unable to communicate with player", Toast.LENGTH_LONG).show();
}
我到底做錯了什麼?
是否有任何限制適用於Android 4或更新版本,或者我弄亂了我的清單文件?
謝謝。
使用AsyncTask執行網絡調用 –
您可能會遇到NetworkOnUIThread異常。檢查你的logcat的細節。解決方案 - 在單獨的線程上移動網絡操作 – mihail