这是一个简单的客户端 - 服务器android应用程序。服务器是在本地PC上运行的简单Java服务器,客户端在仿真器上运行。这里的客户代码:Android应用程序启动套接字不起作用
package com.example.streamer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
class Connecting implements Runnable
{
private Socket sock;
private BufferedReader r;
private BufferedWriter out;
public Connecting()
{
Thread th = new Thread(this);
th.start();
}
@Override
public void run() {
// TODO Auto-generated method stub
try
{
System.out.println("************************ trying to initiated *****************");
sock = new Socket("10.0.2.2",12344);
System.out.println("************************ socket initiated *****************");
r = new BufferedReader(new InputStreamReader(sock.getInputStream()));
System.out.println("************************ buffer reader initiated *****************");
out = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
System.out.println("************************ buffer writer initiated *****************");
}
catch (IOException ioe) { }
}
}
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public void onResume() {
super.onResume();
System.out.println("************************ on resume *****************");
Connecting c = new Connecting();
}
}
有人知道为什么指令sock = new Socket("10.0.2.2", 12344);
没有执行?
我搬到了自己的类连接,使其成为一个线程中运行。我编辑了上面的代码。 – 2013-02-24 09:05:35