Socket在Android中的应用
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的例子:
服务器端代码:
- package com.socket;
- import java.io.BufferedReader;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- /**
- * com Server
- */
- public class Main {
- private int ServerPort = 9999;
- private ServerSocket serversocket = null;
- private OutputStream outputStream = null;
- private InputStream inputStream = null;
- private PrintWriter printWinter = null;
- private Socket socket = null;
- private BufferedReader reader = null;
- public Main(){
- try{
- serversocket = new ServerSocket(ServerPort);
- System.out.println("服务启动。。。");
- socket = serversocket.accept();
- System.out.println("客户已连接");
- }catch(Exception ex){
- ex.printStackTrace();
- }
- try{
- outputStream= socket.getOutputStream();
- inputStream = socket.getInputStream();
- printWinter = new PrintWriter(outputStream,true);
- reader = new BufferedReader(new InputStreamReader(inputStream));
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- while (true){
- String message = reader.readLine();
- System.out.println("client:"+message);
- if(message.equals("bye")||message.equals("Bye")){
- break;
- }
- message = in.readLine();
- printWinter.println(message);
- }
- outputStream.close();
- inputStream.close();
- socket.close();
- serversocket.close();
- System.out.print("Client is disconnected");
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- }
- }
- public static void main(String[] args){
- new Main();
- }
|
评论暂时关闭