您的位置:首页 > 理论基础 > 计算机网络

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: