android udp编程

本文介绍了一个Android UDP客户端无法向服务器发送数据的问题,并提供了解决方案。问题出现在客户端发送UDP数据包时,尽管能够成功建立连接并设置数据包,但发送操作未能成功执行。

============问题描述============


package com.example.udpclient;



import android.app.Activity;

import android.os.Bundle;

import android.util.Log;



import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;



public class MainActivity extends Activity

{

	private static final int MAX_DATA_PACKET_LENGTH = 100;  

    private byte[] buffer = new byte[MAX_DATA_PACKET_LENGTH];  

    private DatagramPacket dataPacket = null;  

    private DatagramSocket udpSocket = null;  

    

	@Override

	protected void onCreate(Bundle savedInstanceState)

	{

		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);

		

		Thread thread = new Thread(runnable);

		thread.start();

	}

	

	Runnable runnable = new Runnable()

	{

		@Override

		public void run()

		{

			// TODO Auto-generated method stub

			try

			{

				udpSocket = new DatagramSocket(5000);

				dataPacket = new DatagramPacket(buffer, MAX_DATA_PACKET_LENGTH);  

				Log.v("packet", "pakcet built!");

		        String str = "hello,jdh";  //这是要传输的数据  

		        byte out [] = new byte[]{(byte)127, (byte)17, (byte)10};  //把传输内容分解成字节  

		        dataPacket.setData(out);

		        dataPacket.setLength(out.length);

		        Log.v("packet length", "pakcet length!");

		        try

				{

					dataPacket.setAddress(InetAddress.getByName("10.13.33.136"));

					dataPacket.setPort(5000);

					Log.v("packet port", "pakcet port!");

				} catch (UnknownHostException e)

				{

					// TODO Auto-generated catch block

					e.printStackTrace();

				}

			} catch (SocketException e)

			{

				// TODO Auto-generated catch block

				e.printStackTrace();

			}

			try

			{

				udpSocket.send(dataPacket);

				Log.v("packet sent", "packet sent!");

			} catch (IOException e)

			{

				// TODO Auto-generated catch block

				e.printStackTrace();

			}

		}

	};

}

电脑写的客户端可以发送给服务器,但是手机端这个客户端却发送不成功,10.13.33.136是我本机ip,我手机连的是wifi。求解,是不是手机端写的哪里有问题?谢啦!

============解决方案1============


看下logcat打印的异常是什么?

转载于:https://www.cnblogs.com/lengyanyue39/p/4033874.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值