一,前言

android模拟器上跑个客户端,这个客户端去连接PC上的服务器,然后过程采用udp方式。

本文不涉及PC上的客户端去连接android模拟器上的服务器。

环境配置:

android SDK用的是:adt-bundle-windows-x86-20130219

JDK:6u39

大致是下面这个样子吧,如图:

二,正文

android客户端网络处理部分的代码:

    protected void connectServerWithUDPSocket(){DatagramSocket socket;try{socket = new DatagramSocket();InetAddress serverAddr = InetAddress.getByName("192.168.1.109");int serverPort = 1998;String str = "hello world";byte data[] = str.getBytes();DatagramPacket packet = new DatagramPacket(data,data.length,serverAddr,serverPort);socket.send(packet);}catch(SocketException e){e.printStackTrace();}catch(UnknownHostException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}}

模拟器不需要做端口重映射(android模拟器连接PC机的时候不需要做端口重映射,PC机连接android模拟器的话则需要做端口重映射)。

服务器是这样样子的,就是我的PC机(IP:192.168.1.109),然后监听1998端口吧。

服务器就这样等吧,这是在本地PC机上,wireshark没有办法捕获,想捕获packet的话就把服务器跑到网络上的其他PC机(比如:192.168.1.118)。

---------------------------------------------------------------------------------------------------------------------------------------

把网络处理部分的代码丢到OnCreate函数里:

    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);connectServerWithUDPSocket();}

编译、运行。。。

结果出问题了,如下图:

这个……java.net.SocketException: socket failed:EACCES(Permission denied)

google一下,貌似在manifest文件中添加网络权限。

那就添加一下呗

保存,编译,运行。。。。

又出问题了。。。。

android.os.NetworkOnMainThreadException……这。。。。

google一下,貌似网络处理这部分代码不能搁到主线程里面哦,就是说不能把connectServerWithUDPSocket()函数丢在OnCreate里面。

那行,那这样吧,我创建一个子线程,然后把网络处理的代码搁到子线程里面。

    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Thread thread = new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubconnectServerWithUDPSocket();}});thread.start();}

编译、运行。。。。哎,成功了。。。

三,后记

作为一名android初学者,我总是很悲剧的碰到各种各样莫名其妙的问题,有时候google谷到想死,可能是搜索关键词用的不合适吧,奔溃。。。走路上谁用大光灯照我,我就骂他。。。。。

时间仓促,文章写的马马虎虎,希望对大家有所帮助。

写在2014.05.15



android模拟器连接PC相关推荐

  1. android手机连接PC后怎样切换为U 盘模式

    android手机连接PC后怎样切换为U 盘模式 之前已经发过关于 APK文件怎样安装程序到手机上  已经介绍过了怎样通过手机与 PC 的连接将软件安装至手机.这一次再来讲解一下怎样将你的手机变为&q ...

  2. android手机连接PC无法正常安装驱动

    工作当中我们经常会遇到Android手机连接PC的时候无法正确安装驱动,或者安装失败.当然找到正确的驱动文件时首选的解决方案,如果正确的驱动文件依旧无法安装成功我们可以打开我的电脑-->属性-- ...

  3. android模拟器访问本地web应用,从 iOS 模拟器和 Android 模拟器连接到本地 Web 服务...

    从 iOS 模拟器和 Android 模拟器连接到本地 Web 服务Connect to local web services from iOS simulators and Android emul ...

  4. 逍遥Android模拟器连接studio调试项目

    逍遥Android模拟器连接studio调试项目 1.在模拟器的/MEmu目录下 打开cmd命令窗口 2.在命令框里输入 : adb start-server 3.找到Android SDK的too路 ...

  5. android模拟器与pc,模拟器与模拟之间用socket进行通信和获得模拟器ip地址程序

    一.PC电脑和Android模拟器访问及模拟器之间tcp/udp通信 http://orgcent.com/pc-android-emulator-socket/ Android系统默认只能通过IP( ...

  6. 如何让你的android模拟器连接上你电脑的网络

    一.在命令行模式下(cmd)下输入adb shell 如果报错,一是"adb不是内部命令或者外部命令,也不是可运行的程序或批处理文件",这个是环境变量没有配置好,adb.exe在模 ...

  7. android模拟器与PC的端口映射(转)

    阅读目录 一.概述 二.实现步骤 回到顶部 一.概述 Android系统为实现通信将PC电脑IP设置为10.0.2.2,自身设置为127.0.0.1,而PC并没有为Android模拟器系统指定IP,所 ...

  8. Android 模拟器连接 USB 设备

    Android Genymotion 连接 USB 设备 一.需要的软件 Genymotion. Oracle VirtualBox.VirtualBox 扩展包(连接 USB 需要) 二.详细步骤 ...

  9. pc上android模拟器,最好的Android模拟器在PC上玩Android游戏

    Android手机和平板电脑上有数百款真正有趣的游戏,其中许多游戏在键盘和鼠标上运行的效果和在触摸屏上运行的效果一样好.不过,它们中有太多只在移动设备上使用,而在PC上无法使用.值得庆幸的是,由于仿真 ...

最新文章

  1. 一文读懂经典双目稠密匹配算法SGM
  2. 数据源 No operations allowed after connection closed
  3. 独角兽之名:解读华云数据背后智慧商业谋略
  4. sql like 多条件
  5. 案例代码:springboot+shiro配置同一用户多设备登录最大会话数
  6. [Pytorch].pth转.pt文件
  7. mysql使用已有的数据库_使用SQL操作MySQL数据库
  8. java.util.list包_Java的Util包总结
  9. 新浪微博表情jQuery插件 v1.2——方便地实现表情插入功能
  10. office出错怎么简单修复
  11. centos7下载php7.4
  12. wordpress基础插件开发3-add_action()案例研究
  13. 机器学习和人工智能的关系是什么?
  14. ESP-Hosted:降低物联网设备的部署成本与复杂性
  15. 强引用,软引用,弱引用,虚引用
  16. [Luogu P2057] 善意的投票
  17. 【Hive】Hive入门解析(一)
  18. 【电子邮件提醒】用python写个能发邮件的脚本
  19. 一个简单的MATLAB脚本——快速行进算法(FMM))
  20. numpy load npz文件

热门文章

  1. mysql删除索引很慢_mysql建立索引删除索引很慢的解决_MySQL
  2. 1.3 聪明的投资者: 投资者与通货膨胀
  3. Windows10+RTX2080Ti+cuda+cudnn+Anaconda+pytorch+tensorflow
  4. [BUUOJ][MRCTF2020]Ezpop
  5. TPC三次握手/四次握手
  6. vue打印带有ant-design样式
  7. Java 中的一维数组以及二维数组(8千字零基础超全详解)
  8. 为什么互联网流行 996 而非886、776
  9. 天津市劝业场商业商务区慢性交通改善规划研究
  10. Win10《芒果TV》更新v3.8.0初夏版:全新视觉体验,即刻分享视频