首届Google暑期大学生博客分享大赛——2010 Andriod

Android是一个开源的手机操作系统平台,已经被非常多的开发者视作未来最有潜力的智能手机操作系统。而且,在很短的时间内就在Android Market上出现大量的第三方应用程序,供用户下载与使用,其中有一些程序增强了手机的应用功能,而另外一些会充分的发挥

手机与其它电子设备的互动。今天,本文主要讲解如何实现Android与PC通讯。

首先,我们先来创建PC的服务器端,其源代码如下:

publicclassTCPDesktopServerimplementsRunnable {

publicstaticfinalStringSERVERIP="192.168.1.100";

publicstaticfinalintSERVERPORT=51706;

@Override

publicvoidrun() {

try{

System.out.println("服务器:正在连接...");

ServerSocket serverSocket =newServerSocket(SERVERPORT);

while(true){

Socket client = serverSocket.accept();

System.out.println("服务器:正在接收...");

try{

BufferedReader in =newBufferedReader(new

InputStreamReader(client.getInputStream()));

String str = in.readLine();

System.out.println("服务器:接收到:'"+ str +"'");

}catch(Exception e){

System.out.println("服务器:出错!");

e.printStackTrace();

}

finally{

client.close();

System.out.println("服务器:关闭。");

}

}

}catch(Exception e){

System.out.println("服务器:出错!");

e.printStackTrace();

}

}

publicstaticvoidmain(String a[]){

Thread desktopServerThread =newThread(newTCPDesktopServer());

desktopServerThread.start();

}

}

上面的源代码分析如下:

publicstaticfinalStringSERVERIP="192.168.1.100";

publicstaticfinalintSERVERPORT=51706;

指定Server监听的端口和服务器IP地址。

ServerSocket serverSocket =newServerSocket(SERVERPORT);

应用程序之前所指定的IPPort创建一个ServerSocket对象。

Socket client = serverSocket.accept();

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

BufferedReader in =newBufferedReader(new

InputStreamReader(client.getInputStream()));

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

其次,在Android中创建客户端(Client),源代码如下:

try{

InetAddress serverAddr = InetAddress.getByName("192.168.1.100");//TCP服务器IP地址

Log.d("TCP","服务器:正在连接...");

Socket socket =newSocket(serverAddr,51706);

String message ="你好!Android";

try{

Log.d("TCP","服务器正在发送信息:'"+message+"'");

PrintWriter out =newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);

out.println(message);

}catch(Exception e) {

Log.e("TCP","服务器出错",e);

}finally{

socket.close();

}

}catch(Exception e){

Log.e("TCP","服务器出错",e);

}

}

源代码分析:

指定ServerIP地址。

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

应用ServerIP和端口建立Socket对象

Socket socket =newSocket(serverAddr,51706);

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

PrintWriter out =newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);

以上就是Android与运行在PC上的Java Server通讯的例子。由于我没有真机测试,所以运行在模拟器上效果不明显。如图1所示。如果其他朋友有更好的方法,希望能与我一起交流。在此表示感谢。

更多相关文章

  1. Android(安卓)提交数据到服务器的四种方法
  2. Android服务器推送之GCM
  3. [原][Android]All WebView methods must be called on the same
  4. 用git 下载android x86出错(syntax error near unexpected token
  5. 高通android开源代码下载
  6. Android使用gradle的管理本地Maven服务器
  7. 关于Android(安卓)Studio v0.1在Win 7下安装好后不能运行的解决
  8. Android手机端调用webservice来获得手机归属地号码
  9. Android应用程序绑定服务(bindService)的过程源代码分析(1)

随机推荐

  1. android_tips
  2. Android:用DialogFragment实现LoadingDial
  3. Android AsyncTask 源码分析详解
  4. android基础学习--->Android(安卓)Shared
  5. Android SQLiteOpenHelper Sqlite数据库
  6. Mac下关于The "android" command is depr
  7. android RSA和Java RSA加密不一致的坑
  8. android配置X86虚拟机
  9. Android数字跑动效果NumberRunView 类似
  10. 睡眠唤醒机制简介