android真机做服务端
public class SocketActivity extends Activity {
    /** Called when the activity is first created. */
private Button startButton = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startButton = (Button)findViewById(R.id.startListener);
        startButton.setOnClickListener(new StartSocketListener());
    }
    
    class StartSocketListener implements OnClickListener{ @Override
public void onClick(View v) {
System.out.println("点击了");

new ServerThread().start();
}
    
    }
    
    class ServerThread extends Thread{
    public void run(){
     //声明一个ServerSocket对象
     ServerSocket serverSocket = null;
     try {
     //创建一个ServerSocket对象,并让这个Socket在4567端口监听
serverSocket = new ServerSocket(30001);
//调用ServerSocket的accept()方法,接受客户端所发送的请求
System.out.println("接受1");
Socket socket = serverSocket.accept();
System.out.println("接受2");
//从Socket当中得到InputStream对象
InputStream inputStream = socket.getInputStream();
byte buffer [] = new byte[1024*4];
int temp = 0;
//从InputStream当中读取客户端所发送的数据
while((temp = inputStream.read(buffer)) != -1){
System.out.println(new String(buffer,0,temp));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

     }
  
    }
}
电脑作为客户端
public class TCPClient {
public static void main(String[] args) {
try {
    System.out.println("发送1");
//创建一个Socket对象,指定服务器端的IP地址和端口号
Socket socket = new Socket("117.136.34.51",30001);
 System.out.println("发送3");
//使用InputStream读取硬盘上的文件
InputStream inputStream = new FileInputStream("f://file/words.txt");
//从Socket当中得到OutputStream
OutputStream outputStream = socket.getOutputStream();
System.out.println("发送2");
byte buffer [] = new byte[4*1024];
int temp = 0 ;
//将InputStream当中的数据取出,并写入到OutputStream当中
while((temp = inputStream.read(buffer)) != -1){
outputStream.write(buffer, 0, temp);
}
System.out.println("发送");
outputStream.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}









}最后客户端出现连接超时java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at mars.TCPClient.main(TCPClient.java:17)