本文所对应的源码在:/html/app/wangluoliulan/2012/0818/76.html
Java Server 源代码:

public class TCPDesktopServer implements Runnable{     public static final String SERVERIP = "192.168.0.149";    public static final int SERVERPORT = 51706;     public void run() {         try {             System.out.println("S: Connecting...");              ServerSocket serverSocket = new ServerSocket(SERVERPORT);             while (true) {                   Socket client = serverSocket.accept();                  System.out.println("S: Receiving...");                   try {                      BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));                      String str = in.readLine();                      System.out.println("S: Received: '" + str + "'");                    } catch(Exception e) {                        System.out.println("S: Error");                        e.printStackTrace();                    } finally {                        client.close();                        System.out.println("S: Done.");                    }              }          } catch (Exception e) {             System.out.println("S: Error");             e.printStackTrace();         }    }    public static void main (String a[]) {        Thread desktopServerThread = new Thread(new TCPDesktopServer());        desktopServerThread.start();    }}

 

对上边的源代码做一些介绍:
指定Server监听的端口和服务器IP地址。

public static final String SERVERIP = "192.168.0.149";public static final int SERVERPORT = 51706;

 

应用之前所指定的IP和Port创建一个ServerSocket对象。

 

ServerSocket serverSocket = new ServerSocket(SERVERPORT);

用于侦听和捕捉通过Socket连接的客户端。

Socket client = serverSocket.accept();

应用Socket创建BufferedReader对象,用于接收Socket Stream中的数据。

BufferedReader in = new BufferedReader(newInputStreamReader(client.getInputStream()));

Android Client 源代码:

InetAddress serverAddr = InetAddress.getByName("192.168.0.149");//TCPServer.SERVERIPLog.d("TCP", "C: Connecting...");Socket socket = new Socket(serverAddr, 51706);String message = "AndroidRes,Where is my Pig (Android)?";try {    Log.d("TCP", "C: Sending: '" + message + "'");    PrintWriter out = new PrintWriter( new BufferedWriter( newOutputStreamWriter(socket.getOutputStream())),true);        out.println(message);} catch(Exception e) {        Log.e("TCP", "S: Error", e);} finally {    socket.close();}

对上边的源代码做一些介绍:
指定Server的IP地址。

InetAddress serverAddr = InetAddress.getByName("192.168.0.149"); 

应用Server的IP和端口建立Socket对象。

Socket socket = new Socket(serverAddr, 51706); 

根据已经建立的Socket来创建PrintWriter,将信息通过这个对象来发送给Server,其中包含了三个部分:

OutputStreamWriterBufferedWriterPrintWriter
PrintWriter out = new PrintWriter( new BufferedWriter( newOutputStreamWriter(socket.getOutputStream())),true);