返回信息流Android端做服务端
等待连接的代码是这样:
final int SERVER_PORT = 10100;
mServerSocket = new ServerSocket(SERVER_PORT);
mSocket = mServerSocket.accept();
PC端做客户端,用C#写的:
先做端口重定向
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StandardInput.WriteLine(@"adb forward tcp:12345 tcp:10100");
然后连接
Socket mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress mIP = IPAddress.Parse("127.0.0.1");
IPEndPoint EPhost = new IPEndPoint(mIP, int.Parse("12345"));
mSocket.Connect(EPhost);
C#这边显示已经连接成功,但是android端一直停留在mSocket = mServerSocket.accept()不往下走了,这是为什么?
这是一条镜像帖。来源:北邮人论坛 / java / #27387同步于 2013/10/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
【已解决】有关PC与Android通过USB进行Socket通信的问题
duchaobupt
2013/10/16镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
如果lz的android端是模拟器的话,可以尝试以下步骤(参考 http://orgcent.com/pc-android-emulator-socket/ ):
1.在pc上 telnet localhost 5554 ,android模拟器默认连接pc的端口是5554端口,可以启动模拟器之后在标题上看到。
2.pc上执行redir add tcp:6661:6662 作用是,会把pc 6661端口接收到的tcp数据转到模拟器的6662端口。
3.pc端写个小程序发送tcp数据。发送ip是127.0.0.1,端口是6661。
4.android接受6662端口的tcp数据。
不过这个方法在真机上似乎行不通。我尝试过在android真机上打开telnet服务,然后pc telnet到android上,发现连接上之后就被android拒绝了。
lz可以尝试一下~有问题继续讨论。
话说,android usb通信需要:adb.exe, AdbWinUsbApi.dll, AdbWinUsbApi.dll这三个文件,不知lz,是否遗漏了。。
我已经解决问题了,用真机已经实现
【 在 wkxfivestars 的大作中提到: 】
: 如果lz的android端是模拟器的话,可以尝试以下步骤(参考 http://orgcent.com/pc-android-emulator-socket/ ):
: 1.在pc上 telnet localhost 5554 ,android模拟器默认连接pc的端口是5554端口,可以启动模拟器之后在标题上看到。
: 2.pc上执行redir add tcp:6661:6662 作用是,会把pc 6661端口接收到的tcp数据转到模拟器的6662端口。
: ...................
谢谢,我已经解决了,不是这个原因
【 在 zishi 的大作中提到: 】
: 话说,android usb通信需要:adb.exe, AdbWinUsbApi.dll, AdbWinUsbApi.dll这三个文件,不知lz,是否遗漏了。。
谢谢,之前已解决问题
【 在 hoholiday 的大作中提到: 】
: 安卓3。0以上网络操作必须放在其他新线程里执行 而且要添加网络权限
: iPhone客户端1.3发布
这些代码是可行的,没有问题。是我自作聪明在新进程里添加了一些对主activity的操作导致程序崩溃了
【 在 wkxfivestars 的大作中提到: 】
: 解决方法贴出来嘛