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

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

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

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

public class TCPDesktopServer implements Runnable {

public static final String SERVERIP="192.168.1.100";

public static final int SERVERPORT=51706;

@Override

public void run() {

try{

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

ServerSocket serverSocket = new ServerSocket(SERVERPORT);

while(true){

Socket client = serverSocket.accept();

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

try{

BufferedReader in = new BufferedReader(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();

}

}

public static void main(String a[]){

Thread desktopServerThread = new Thread(new TCPDesktopServer());

desktopServerThread.start();

}

}

上面的源代码分析如下:

public static final String SERVERIP="192.168.1.100";

public static final int SERVERPORT=51706;

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

ServerSocket serverSocket = new ServerSocket(SERVERPORT);

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

Socket client = serverSocket.accept();

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

BufferedReader in = new BufferedReader(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 = new Socket(serverAddr,51706);

String message = "你好!Android。";

try {

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

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

out.println(message);

} catch (Exception e) {

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

}finally{

socket.close();

}

}catch(Exception e){

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

}

}

源代码分析:

指定Server的IP地址。

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

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

Socket socket = new Socket(serverAddr,51706);

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

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

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

Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯相关推荐

  1. 物联网平台 TCP/IP HTTP MQTT 通讯协议 支持海康摄像头 数据实时采集和远程控制

    物联网平台源码 TCP/IP HTTP MQTT 通讯协议 支持海康摄像头 系统包括,后台服务,传感器解析服务.web展示,文档齐全. 目前web系统支持功能,: 数据实时采集和远程控制: 报警信息管 ...

  2. http与https与socket tcp/IP与UDP 协议等

    网络由下往上分为:   物理层--                       数据链路层-- 网络层--                       IP协议 传输层--               ...

  3. iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客

    版权声明:本文为博主原创文章,未经博主允许不得转载. 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 简单介绍: [objc] view plaincopy //  ...

  4. Linux Socket TCP/IP通信

    1. Server端 /*socket tcp服务器端*/ #include <sys/stat.h> #include <fcntl.h> #include <errn ...

  5. socket,TCP/IP的理解(转)

    TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间 ...

  6. Socket TCP/IP 通信实例

    什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程, ...

  7. KUKA以太网 SOCKET TCP/IP以太网通信 KUKA通信 库卡实时通信 KUKA C2 KUKA C4

    视频 库卡TCP/IP远程工具,支持状态读取.变量读写.远程启动与停止,可用于上位机操作.MES系统等.支持kuka c2 c4系统. 新增报警信息采集,ftp程序上传管理,视觉相机的通信. 可搭建M ...

  8. TwinCAT3以太网TCP/IP自由协议通讯

    目录 一.TwinCAT3以太网TCP/IP客户端创建 1.系统连接示意图 1.程序创建 (1)工程创建和授权添加 (2)库文件添加 (3)变量创建 (4)程序 2.测试 (1)网络调试助手创建服务端 ...

  9. 使用SOCKET实现TCP/IP协议的通讯

    一.原理: 首先要理解基本的原理,2台电脑间实现TCP通讯,首先要建立起连接,在这里要提到服务器端与客户端,两个的区别通俗讲就是主动与被动的关系,两个人对话,肯定是先有人先发起会话,要不然谁都不讲,谈 ...

最新文章

  1. 关于工作流引擎的设计讨论
  2. python实现高校教务管理系统_python+mysql实现教务管理系统
  3. 百万数据报表读取:解决方案及原理分析
  4. POJ 2773 欧几里得
  5. python 使用requests模块进行 视频文件的下载
  6. 牛客网_Go语言相关练习_选择题(2)
  7. ansible软件部署
  8. 终于!华为Mate 9已获安卓9.0正式版更新
  9. vue项目运用繁体字
  10. android固定标题表格,Android使用TableLayout之固定表头(标题栏)
  11. MacOS上MPV播放器常用快捷键(增加画面旋转快捷键)
  12. 通过tasker实现朗读微信QQ文字消息
  13. 4、智慧变电站 - 外围电塔及电线绘制
  14. 5G学习笔记之RRC_IDLE/RRC_INACTIVE态UE功能概述
  15. D-Link DIR505路由器溢出漏洞实战
  16. java学习方法和经验
  17. 系统架构的基本设计原则
  18. IMX6Q安卓解开温度墙,设置高性能模式
  19. ThinkPHP3.2.3 实现微信小程序微信授权登录
  20. 骞云数据库DBaaS解决方案深度解析

热门文章

  1. Unity编辑器扩展——通用组件替换工具
  2. Prometheus学习系列(十五)之预警规则
  3. 中国2007年度最大社会事件回顾
  4. 元宇宙将如何重塑摄影艺术?
  5. springboot+学生信息管理 毕业设计-附源码191219
  6. NS3 遇到的BUG
  7. 【小程序】微信小程序进入自动播放背景音乐
  8. 亚马逊云科技和安恒信息,发布云原生SaaS主机安全和云原生堡垒机
  9. 全国计算机二级试题题库,2017年3月全国计算机二级office试题题库操作题
  10. Sapling: 一款 Facebook 开源跨平台、高度可扩展、兼容 Git 的源码控制系统