一、编写思路
   
手机端为客户端,PC为服务端,手机访问PC通信,需建立一个虚拟的通信链路,客户端通过socket发送请求到服务端,服务端通过serversocket监听来自客户端的socket请求,并生成一个socket。这样就建立了一条虚拟通信网络,然后再通过相关方法进行通信。项目需在服务端建立一个java程序,客户端建立一个android程序。
二、代码编写
(一) PC端的代码编写——java程序
(1)相关方法
Socket accept() :如果接收到一个来自客户端的socket的连接请求,该方法将返回一个与连接客户端对应的socket,否则该方法一直处于等待状态,线程也被阻塞。
Serversocket(int port ): 用指定的端口port来创建一个serversocket。该端口应该是一个有效的端口整数值:0 --65535 。查询PC的端口:提示命令符下输入
netstat -na ,选择上面没有的端口。
(2)java代码
package com.myServer;
                   import java.io.IOException;
                   import java.io.OutputStream;
                   import java.net.ServerSocket;
                   import java.net.Socket;
public class myServer {
                   /**
                   * @param args
                   */
                       public static void main(String[] args) throws IOException {
                       // TODO Auto-generated method stub
                           // 创建一个serversocket,用于监听客户端socket的连接请求
                          ServerSocket ss = new ServerSocket(3000);
                 
                           // 采用循环不断接受来自客户端的请求
                           while (true) {
                  
                           // 每当接受到客户端socket的请求,服务端也产生一个socket
                           Socket s = ss.accept();
                           OutputStream os = s.getOutputStream();
                           os.write("您好,您收到了服务器的信念祝福\n".getBytes("utf-8"));
			
                           // 关闭输出流,关闭socket
                          os.close();
                          s.close();
                                }
                            }
                        }
(二)android程序
(1)MainActivity.java
package com.myServer;
                  import java.io.IOException;
                  import java.io.OutputStream;
                  import java.net.ServerSocket;
                  import java.net.Socket;
public class myServer {
                  /**
                   * @param args
                    */
                  public static void main(String[] args) throws IOException {
                      // TODO Auto-generated method stub
                     // 创建一个serversocket,用于监听客户端socket的连接请求
                         ServerSocket ss = new ServerSocket(3000);
                     // 采用循环不断接受来自客户端的请求
                         while (true) {
                     // 每当接受到客户端socket的请求,服务端也产生一个socket
                         Socket s = ss.accept();
                         OutputStream os = s.getOutputStream();
                         os.write("您好,您收到了服务器的信念祝福\n".getBytes("utf-8"));
                     // 关闭输出流,关闭socket
                         os.close();
                         s.close();
                             }
                          }
                      }
(2)activity_main.xml
                  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  android:id="@+id/LinearLayout1"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical"
                  android:paddingBottom="@dimen/activity_vertical_margin"
                  android:paddingLeft="@dimen/activity_horizontal_margin"
                  android:paddingRight="@dimen/activity_horizontal_margin"
                  android:paddingTop="@dimen/activity_vertical_margin"
                  tools:context=".MainActivity" >
                  <EditText
                          android:id="@+id/show"  
                          android:layout_width="fill_parent" 
                          android:layout_height="wrap_content" 
                          android:editable="false"
                          android:cursorVisible="false"
                    />
</LinearLayout>
(3)AndroidManifest.xml
                      <?xml version="1.0" encoding="utf-8"?>
                      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                      package="com.myclient"
                      android:versionCode="1"
                      android:versionName="1.0" >
                      <uses-sdk
                            android:minSdkVersion="8"
                            android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.INTERNET" />
                     <application
                         android:allowBackup="true"
                         android:icon="@drawable/ic_launcher"
                         android:label="@string/app_name"
                         android:theme="@style/AppTheme" >
                     <activity
                         android:name="com.myclient.MainActivity"
                         android:label="@string/app_name" >
                     <intent-filter>
                          <action android:name="android.intent.action.MAIN" />
                          <category android:name="android.intent.category.LAUNCHER" />
                     </intent-filter>
                   </activity>
                  </application>
</manifest>