Socket在Android中的应用


Android 提供的常用的网络编程包括针对TCP/IP协议的Socket通信。Socket是一种跨平台的编程方式,可以在异构语言之间进行通信。

Socket程序的开发原理,是要实现服务器端和客户端。

服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

更多Android相关信息见Android 专题页面 http://www.bkjia.com/topicnews.aspx?tid=11

下面是一个实现socket的例子:

服务器端代码:

  1. package com.socket;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.InputStream;  
  5. import java.io.InputStreamReader;  
  6. import java.io.OutputStream;  
  7. import java.io.PrintWriter;  
  8. import java.net.ServerSocket;  
  9. import java.net.Socket;  
  10. /** 
  11. * com Server 
  12. */  
  13. public class Main {  
  14.     private int ServerPort = 9999;  
  15.     private ServerSocket serversocket = null;  
  16.     private OutputStream outputStream = null;  
  17.     private InputStream inputStream = null;  
  18.     private PrintWriter printWinter = null;  
  19.     private Socket socket = null;  
  20.     private BufferedReader reader = null;  
  21.       
  22.     public Main(){  
  23.         try{  
  24.             serversocket = new ServerSocket(ServerPort);  
  25.             System.out.println("服务启动。。。");  
  26.             socket = serversocket.accept();  
  27.             System.out.println("客户已连接");  
  28.               
  29.               
  30.         }catch(Exception ex){  
  31.             ex.printStackTrace();  
  32.         }  
  33.         try{  
  34.             outputStream= socket.getOutputStream();  
  35.             inputStream = socket.getInputStream();  
  36.             printWinter = new PrintWriter(outputStream,true);  
  37.             reader = new BufferedReader(new InputStreamReader(inputStream));  
  38.             BufferedReader in = new BufferedReader(new InputStreamReader(System.in));  
  39.             while (true){  
  40.                 String message = reader.readLine();  
  41.                 System.out.println("client:"+message);  
  42.                 if(message.equals("bye")||message.equals("Bye")){  
  43.                     break;  
  44.                 }  
  45.                 message = in.readLine();  
  46.                 printWinter.println(message);  
  47.                   
  48.             }  
  49.             outputStream.close();  
  50.             inputStream.close();  
  51.             socket.close();  
  52.             serversocket.close();  
  53.             System.out.print("Client is disconnected");  
  54.               
  55.         }catch(Exception e){  
  56.             e.printStackTrace();  
  57.         }finally{  
  58.               
  59.         }  
  60.       
  61.     }  
  62.     public static void main(String[] args){  
  63.         new Main();  
  64.     }  
  • 1
  • 2
  • 3
  • 下一页

相关内容