ブラウザーの [Go] ボタンが押されたときにソケットを介してサーバーと通信する Android ブラウザーを作成するために、Eclipse で Java コードを作成しています。いくつかの例を見てきましたが、コードの何が問題なのかまだわかりません。私は正しい IP アドレスを持っており、コードのサーバー側とクライアント側で同じポート番号を使用しています。import ステートメントを除いたクライアント コードは次のとおりです。
public class MainActivity3 extends Activity {
EditText URLText;
Button GoButton;
WebView Browser;
int SERVERPORT = 33333;
String servernum = "10.215.23.109";
private boolean connected = true;
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity3);
URLText = (EditText) findViewById(R.id.URL);
GoButton = (Button) findViewById(R.id.Go);
Browser = (WebView) findViewById(R.id.WebEngine);
Browser.loadUrl("http://www.google.co.in/");
GoButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Browser.setWebViewClient(new MyWebViewClient());
Thread cThread = new Thread(new ClientThread());
cThread.start();
Browser.loadUrl("http://" + URLText.getText().toString());
}
});
}
public class ClientThread implements Runnable {
@Override
public void run() {
try {
Log.d("ClientActivity", "C: Connecting...");
Socket socket = new Socket(servernum, SERVERPORT);
} catch (UnknownHostException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_activity3, menu);
return true;
}
}
}
これはサーバーコードです:
public static void main(String[] args) throws IOException {
int port = 33334;
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("Server socket created at port # "+ port );
Socket socket = serverSocket.accept();
System.out.println("Socket accepted");
System.out.println("Output created");
socket.close();
serverSocket.close();
}
これは基本的に、電話がサーバーに接続されることを確認するためのテスト コードです。Linuxターミナルで実行すると、「ポート#33334で作成されたサーバーソケット」のみが出力され、電話がポートに接続されるのを待ちますが、ブラウザで何度も[go]を押した後でも発生しません。コードのクライアント側に何か問題があります。
誰でもこの問題を解決するのを手伝ってもらえますか?