Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯
首届 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通讯相关推荐
- 物联网平台 TCP/IP HTTP MQTT 通讯协议 支持海康摄像头 数据实时采集和远程控制
物联网平台源码 TCP/IP HTTP MQTT 通讯协议 支持海康摄像头 系统包括,后台服务,传感器解析服务.web展示,文档齐全. 目前web系统支持功能,: 数据实时采集和远程控制: 报警信息管 ...
- http与https与socket tcp/IP与UDP 协议等
网络由下往上分为: 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- ...
- iOS中 HTTP/Socket/TCP/IP通信协议详解 韩俊强的博客
版权声明:本文为博主原创文章,未经博主允许不得转载. 每日更新关注:http://weibo.com/hanjunqiang 新浪微博 简单介绍: [objc] view plaincopy // ...
- Linux Socket TCP/IP通信
1. Server端 /*socket tcp服务器端*/ #include <sys/stat.h> #include <fcntl.h> #include <errn ...
- socket,TCP/IP的理解(转)
TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间 ...
- Socket TCP/IP 通信实例
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程, ...
- KUKA以太网 SOCKET TCP/IP以太网通信 KUKA通信 库卡实时通信 KUKA C2 KUKA C4
视频 库卡TCP/IP远程工具,支持状态读取.变量读写.远程启动与停止,可用于上位机操作.MES系统等.支持kuka c2 c4系统. 新增报警信息采集,ftp程序上传管理,视觉相机的通信. 可搭建M ...
- TwinCAT3以太网TCP/IP自由协议通讯
目录 一.TwinCAT3以太网TCP/IP客户端创建 1.系统连接示意图 1.程序创建 (1)工程创建和授权添加 (2)库文件添加 (3)变量创建 (4)程序 2.测试 (1)网络调试助手创建服务端 ...
- 使用SOCKET实现TCP/IP协议的通讯
一.原理: 首先要理解基本的原理,2台电脑间实现TCP通讯,首先要建立起连接,在这里要提到服务器端与客户端,两个的区别通俗讲就是主动与被动的关系,两个人对话,肯定是先有人先发起会话,要不然谁都不讲,谈 ...
最新文章
- 关于工作流引擎的设计讨论
- python实现高校教务管理系统_python+mysql实现教务管理系统
- 百万数据报表读取:解决方案及原理分析
- POJ 2773 欧几里得
- python 使用requests模块进行 视频文件的下载
- 牛客网_Go语言相关练习_选择题(2)
- ansible软件部署
- 终于!华为Mate 9已获安卓9.0正式版更新
- vue项目运用繁体字
- android固定标题表格,Android使用TableLayout之固定表头(标题栏)
- MacOS上MPV播放器常用快捷键(增加画面旋转快捷键)
- 通过tasker实现朗读微信QQ文字消息
- 4、智慧变电站 - 外围电塔及电线绘制
- 5G学习笔记之RRC_IDLE/RRC_INACTIVE态UE功能概述
- D-Link DIR505路由器溢出漏洞实战
- java学习方法和经验
- 系统架构的基本设计原则
- IMX6Q安卓解开温度墙,设置高性能模式
- ThinkPHP3.2.3 实现微信小程序微信授权登录
- 骞云数据库DBaaS解决方案深度解析