WEB开发网
开发学院手机开发Android 开发 Windows客户端与Android服务端的Socket通信 阅读

Windows客户端与Android服务端的Socket通信

 2010-06-04 14:09:00 来源:WEB开发网   
核心提示:using System.Diagnostics;namespace G3Exp.Class{public static class clsAndroid{static private void Connect(String server, String message){try{//通过SDK下面的ADB命令来通知A

using System.Diagnostics;

namespace G3Exp.Class

{

public static class clsAndroid

{

static private void Connect(String server, String message)

{

try

{

//通过SDK下面的ADB命令来通知Android开侦听10086端口

Process p = new Process();

p.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory+@" oolsadb.exe";

p.StartInfo.Arguments = "forward tcp:12580 tcp:10086";

p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

p.Start();

Int32 port = 12580;

TcpClient client = new TcpClient(server, port);

//把URL发给TCP服务端

Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);

NetworkStream stream = client.GetStream();

stream.Write(data, 0, data.Length);

client.Close();

}

catch (ArgumentNullException e)

{

Console.WriteLine("ArgumentNullException: {0}", e);

}

catch (SocketException e)

{

Console.WriteLine("SocketException: {0}", e);

}

}

public static void OpenWeb(string strUrl)

{

Connect("127.0.0.1", strUrl);

}

}

}

简单说明一下:

(1)在Android中,在打开USB调试的情况下使用USB数据线插入PC后,Android与PC会创建虚拟网络,并且IP为127.0.0.1。但在一些OPhone手机中,使用127.0.0.1确无法连接成功。这时可自行设置IP:

set ADBHOST=192.168.10.1

adb kill-server

adb start-server

(2)这里使用了一个新的线程来侦听和打开网站的工作,以避免造成主UI线程的阻塞。

(3)由于我对这块功能之前没有做过,故一定会有很多可以改进的地方。

上一页  1 2 3 4 

Tags:Windows 客户端 Android

编辑录入:coldstar [复制链接] [打 印]
赞助商链接