import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;//import com.paic.raul.SocketSendDataService;import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;public class NetActivity extends Activity { private Thread mainLoopThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_net);
} public  void a(){
mainLoopThread=new Thread(){
public void run(){
try {
Log.d("pro1","1234");
Socket socket = new Socket("169.254.125.197",30000);
//Log.d("pro2","1234");
    InputStream inputStream = new FileInputStream("F://KuGou//Song 6.mp3");
OutputStream outputStream = socket.getOutputStream();
byte buffer[] = new byte[640*480];
int temp = 0;
/*outputStream.write("HELLO".getBytes());*/
while ((temp = inputStream.read(buffer)) != -1)
{
outputStream.write(buffer, 0, temp);
}
outputStream.flush();
//} } catch (Exception e) {
e.printStackTrace();
}
}


};
  mainLoopThread.start();
   };
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.net, menu);
return true;
}
protected  void onStart(){
super.onStart();
Log.d("pro2","1234");
a();
}
}
代码如上,编译运行到新建socket就不运行了,用Log.d看的。
logcat显示如下:Androidsockettcp

解决方案 »

  1.   

    AndroidManifest.xml里面配置权限了吗
      

  2.   

    你这写的是客户端socket,
    Socket socket = new Socket("169.254.125.197",30000);//这个会去连接服务器
    sdk文档对该接口描述如下:
    Creates a new streaming socket connected to the target host specified by the parameters dstAddress and dstPort. The socket is bound to any available port on the local host.你上面的问题是由于ip = 169.254.125.197 , port = 30000;的服务器没有启动。所以就连接失败了。可以先把socket服务器先跑起来,创建个本地的socket也可以。
      

  3.   


    我在服务端wireshark抓是否有连接请求的抓不到
      

  4.   

    你服务端是不是在自己的机子里啊,是不是用路由器在上网,去路由器那设置:转发机制,DMZ主机,设置成自己的IP
      

  5.   


    额。。最后发现应该是ARM盒子的原因,那边网不通。谢谢啦