android模拟器连接PC

一,前言

       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()
        {
			@Override
			public void run() {
				// TODO Auto-generated method stub
				connectServerWithUDPSocket();
			}
        });
        thread.start();
    }

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


三,后记

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

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

       写在2014.05.15


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android studio模拟器下载失败的原因可能有多种。其中一种可能是电脑配置不足导致模拟器无法正常运行。另外,网络连接不稳定或者下载链接不正确也会导致下载失败。 对于android studio自带模拟器启动失败的情况,主要原因可能是电脑配置不够强大,无法满足模拟器运行需求。在这种情况下,你可以尝试升级电脑硬件,比如增加内存、更换处理器等来提升性能。 此外,如果你想尝试其他第三方模拟器,有一些可靠和好用的选择。例如雷电安卓模拟器和夜神模拟器。雷电模拟器是一款广受欢迎的模拟器之一,它提供了丰富的功能和良好的兼容性。你可以在雷电模拟器官网下载并安装它。夜神模拟器也是一款功能强大的安卓模拟器,它具有较好的稳定性和性能。你可以在夜神模拟器官网下载并安装它。 综上所述,android studio模拟器下载失败可能是因为电脑配置不足或者网络连接问题。你可以尝试升级电脑硬件或者尝试其他第三方模拟器来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Android Studio连接自带模拟器失败怎么办?强烈建议使用第三方模拟器(含各类模拟器下载地址)](https://blog.csdn.net/weixin_49851451/article/details/124221249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值