我已經看到了其中一些問題,但沒有一個答案似乎能夠解決我的問題。 我想從我的客戶端(Android手機,我實際上有一個物理設備)在我的服務器(PC)上顯示消息。 我有一個非常簡單的PC服務器:使用Android客戶端和PC服務器的套接字
public void run(int port) throws Exception
{
ServerSocket ss = new ServerSocket(port);
Socket sock = ss.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(sock.getInputStream()));
System.out.println(reader.readLine());
}
(在我的主要無效):
Server s = new Server();
s.run(4444);
,也是一種極其簡單的Android客戶端:
package com.j03.client;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.io.*;
import java.net.*;
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try
{
runClient("10.0.2.2", 4444, "hey");
}
catch (Exception e)
{
TextView t = new TextView(this);
t.setText(e.getMessage());
setContentView(t);
}
}
public static void runClient(String ip, int port, String message) throws Exception
{
Socket sock = new Socket(ip, port);
PrintStream ps = new PrintStream(sock.getOutputStream());
ps.println(message);
}
}
我也有正確的互聯網我的清單文件中的權限:
<uses-permission android:name="android.permission.INTERNET"/>
客戶端代碼和PC客戶端一樣正常工作。 (PC客戶端到PC服務器工作正常)。
但我不能讓它在Android上工作!
PC服務器根本不顯示任何內容。 :(
有誰知道我可能做錯了嗎?
你只設置TextView的時候有一個正確的例外如果一切正常,那麼你永遠不會在屏幕上顯示任何東西 – elevine 2013-03-08 22:30:46
W hen'runClient()'被稱爲它應該發送消息到服務器。例外情況是顯示任何錯誤(在我向清單中添加正確權限之前它曾做過)。 客戶端不應顯示任何文本。 – 2013-03-08 22:37:07
那麼,到底什麼是不工作?這聽起來像問題是「我只是得到一個空白的屏幕。」 – elevine 2013-03-08 22:47:30