Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯
2010-10-13 23:22
746 查看
Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯
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
所示。如果其他朋友有更好的方法,希望能与我一起交流。在此表示感谢。
http://blog.csdn.net/tsdl2009/archive/2010/08/09/5798868.aspx
相关文章推荐
- Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯
- Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯
- Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯
- Android 手机应用开发经验 之 通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- android通过执行netstat及cat /proc/net/tcp查看正在运行应用的本地端口号pid和uid以及对方的IP和端口号
- Android网络:由手机与手机WIFI互传照片谈Android TCP Socket开发要点
- Android 手机应用开发经验之手势识别Gesture的研究
- Android通过Socket(TCP/IP)与PC通讯
- C#TCP/IP网络应用开发包SocketWrench .NET详细介绍
- Android 手机应用开发经验 之Txt文本读写类源代码
- Android通过Socket(TCP/IP)与PC通讯
- Android网络:由手机与手机WIFI互传照片谈Android TCP Socket开发要点
- Android通过Socket(TCP/IP)与PC通讯
- android通过执行netstat及cat /proc/net/tcp查看正在运行应用的本地端口号pid和uid以及对方的IP和端口号
- 由手机与手机WIFI互传照片谈Android TCP Socket开发要点
- Android通过Socket(TCP/IP)与PC通讯