如何使用UDP套接字在Android的?

编程入门 行业动态 更新时间:2024-10-28 17:20:05
本文介绍了如何使用UDP套接字在Android的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想使用UDP套接字在Android的,在这里我把我的字符串从Android模拟器,并接收通过电脑我的Java程序,但我的Java程序不会收到任何东西,虽然当我用Java程序的客户端和服务器(我做了两个不同的Java程序),它的工作。

这是我的Andr​​oid主要活动:

公共类首先扩展活动{ 按钮B; @覆盖 公共无效的onCreate(包savedInstanceState){     super.onCreate(savedInstanceState);     的setContentView(R.layout.main);     B =(按钮)findViewById(R.id.button1);     b.setOnClickListener(新View.OnClickListener(){         公共无效的onClick(视图v){             // TODO自动生成方法存根             线程t =新主题(新二());             t.start();         }     });

下面是我的第二类机器人:

公共类二实现Runnable { 第二() {     跑(); } 公共无效的run(){     // TODO自动生成方法存根     尝试 {         字符串messageStr =你好Android的!;         INT SERVER_PORT = 9876;         DatagramSocket的S =新的DatagramSocket();         InetAddress类本地= InetAddress.getByName(127.0.0.1);         INT msg_length = messageStr.length();         byte []的消息= messageStr.getBytes();         DatagramPacket类P =新的DatagramPacket(消息,msg_length,地方,                 SERVER_PORT);         s.send(对);     }赶上(例外五){     } } }

这是在PC上我的Java code:

公共静态无效的主要(字符串的args [])抛出异常     {             DatagramSocket类的ServerSocket =新的DatagramSocket(9876);             byte []的receiveData =新的字节[1024];             byte []的送出数据=新的字节[1024];             而(真)             {                     DatagramPacket类receivePacket =新的DatagramPacket(receiveData,receiveData.length);                     serverSocket.receive(receivePacket);                     串句=新的String(receivePacket.getData(),0,receivePacket.getLength());                     InetAddress类ip地址= receivePacket.getAddress();                     INT端口= receivePacket.getPort();                     的System.out.println(收到消息+句子++ ip地址++端口);             }      }

解决方案

在你的Andr​​oid仿真(和Android设备),127.0.0.1意味着Android的模拟机,而不是PC主机。您可以在10.0.2.2

I am trying to use UDP sockets in a android, here I send my string from android emulator and receive that by my Java program on PC, but my Java program does not receive anything, although when I used Java program as both client and server (I made two different Java programs) it worked.

This is my android main activity :

public class First extends Activity { Button b; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b = (Button) findViewById(R.id.button1); b.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Thread t = new Thread(new Second()); t.start(); } });

Here is my second class in android :

public class Second implements Runnable { Second() { run(); } public void run() { // TODO Auto-generated method stub try { String messageStr = "Hello Android!"; int server_port = 9876; DatagramSocket s = new DatagramSocket(); InetAddress local = InetAddress.getByName("127.0.0.1"); int msg_length = messageStr.length(); byte[] message = messageStr.getBytes(); DatagramPacket p = new DatagramPacket(message, msg_length, local, server_port); s.send(p); } catch (Exception e) { } } }

This is my Java code on PC:

public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length); serverSocket.receive(receivePacket); String sentence = new String(receivePacket.getData(),0,receivePacket.getLength()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); System.out.println("MESSAGE RECEIVED "+sentence+" "+IPAddress+" "+port); } }

解决方案

On your Android emulation (and Android device), 127.0.0.1 means the Android emulation machine, not the host PC. You can access your host at 10.0.2.2

更多推荐

如何使用UDP套接字在Android的?

本文发布于:2023-11-15 13:19:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1594792.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   UDP   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!