Android手机通过socket与pc通信


在Android中可以直接利用java中的Socket与ServerSocket构建socket通信。

代码的运行环境:

pc端:普通pc,作为服务器,已经设置有域名(通过动态域名软件设置),在5648端口进行监听。

Android手机客户端:android2.3设备。

代码运行一切正常,客户端发送的文字将在服务器端接收并显示,服务器每接收到客户端的一行文字,就会返回一个从0开始递增的整数,此整数将在客户端显示出来。

pc端代码:

  1. package test;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.InputStreamReader;  
  7. import java.io.OutputStream;  
  8. import java.io.PrintWriter;  
  9. import java.net.ServerSocket;  
  10. import java.net.Socket;  
  11.   
  12.   
  13. public class Test implements Runnable{  
  14.   
  15.     /** 
  16.      * @param args 
  17.      */  
  18.       
  19.     int max=10;      //最大开启线程数   
  20.     int i=0;         //回复数字   
  21.     int temp;  
  22.     ServerSocket serverSocket;  
  23.     Socket socket[];  
  24.       
  25.     public Test(){  
  26.           
  27.         try {  
  28.             serverSocket=new ServerSocket(5648);    //在5648端口进行侦听   
  29.         } catch (IOException e) {  
  30.             // TODO Auto-generated catch block   
  31.             e.printStackTrace();  
  32.             System.out.println("can't initate ServerSocket!");  
  33.             return;  
  34.         }  
  35.           
  36.         socket=new Socket[max];  
  37.           
  38.         System.out.println("waiting for connect");  
  39.         try {  
  40.             while((socket[i]=serverSocket.accept())!=null){  
  41.                 temp=i;  
  42.                 i++;  
  43.                 new Thread(this).start();           //每侦听到一个客户端的连接,就会开启一个工作线程   
  44.                   
  45.             }  
  46.         } catch (IOException e) {  
  47.             // TODO Auto-generated catch block   
  48.             e.printStackTrace();  
  49.         }  
  50.     }  
  51.     public static void main(String[] args) {  
  52.         new Test();  
  53.   
  54.     }  
  55.   
  56.     @Override  
  57.     public void run() {  
  58.         Socket sk=socket[temp];  
  59.         System.out.println("accept:"+sk.getInetAddress().getHostAddress());  
  60.         InputStream is=null;  
  61.         OutputStream os=null;  
  62.         BufferedReader br=null;  
  63.         PrintWriter pw=null;  
  64.         try {  
  65.             is=sk.getInputStream();  
  66.             os=sk.getOutputStream();  
  67.             br=new BufferedReader(new InputStreamReader(is));  
  68.             pw=new PrintWriter(os);  
  69.         } catch (IOException e) {  
  70.             // TODO Auto-generated catch block   
  71.             e.printStackTrace();  
  72.             try {  
  73.                 sk.close();  
  74.             } catch (IOException e1) {  
  75.                 // TODO Auto-generated catch block   
  76.                 e1.printStackTrace();  
  77.             }  
  78.             return;  
  79.         }  
  80.         String str;  
  81.         try {  
  82.             int m=0;  
  83.             while((str=br.readLine())!=null){  
  84.                 System.out.println(str);  
  85.                 pw.println(m);  
  86.                 pw.flush();  
  87.                 m++;  
  88.             }  
  89.         } catch (IOException e) {  
  90.             // TODO Auto-generated catch block   
  91.             e.printStackTrace();  
  92.         }  
  93.           
  94.     }  
  95.   
  96. }  
  • 1
  • 2
  • 3
  • 下一页

相关内容