`

【android】与pc机进行UDP通信(二)

阅读更多
上次讲到android虚拟机和pc机进行通讯,现在就将小程序复杂一点点。
pc将获得的数据原封不动得再发给android虚拟机。
示例图:



代码在原来的基础上进行了补充:
public class Server {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		DatagramSocket ds = new DatagramSocket(10000);
		while(true){
			byte [] b = new byte[1024];
			DatagramPacket dp = new DatagramPacket(b,b.length);
			ds.receive(dp);
			System.out.println("IP: "+dp.getSocketAddress());//输出内容:IP: /127.0.0.1:56934
			System.out.println("prot: "+dp.getPort());
			System.out.println("data: "+new String(dp.getData(),0,dp.getLength(),"utf-8"));
//   上面和前一篇文章内容一样。只是多了一个server端的send。dp.getSocketAddress()这个就是获取android的Inetaddress
			DatagramPacket dp2 = new DatagramPacket(dp.getData(), dp.getLength(), dp.getSocketAddress());
			ds.send(dp2);
		}
	}

}


android端的client:
public class AndroidUdpActivity extends Activity {
    DatagramSocket ds = null;
    DatagramPacket dp,dp2 = null;
    Button b = null;
    EditText et = null;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        b = (Button) this.findViewById(R.id.button1);
        et = (EditText) this.findViewById(R.id.editText1);

        try {
			ds = new DatagramSocket(10001);
		} catch (SocketException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		b.setOnClickListener(new OnClickListener() {
			// TODO Auto-generated method stub
			@Override
			public void onClick(View v) {     
//				String s = "welcome to c....";
				String s = et.getText().toString();
				
				
				byte [] buf = s.getBytes();
				int length = buf.length;
				
				try {
					dp = new DatagramPacket(buf,length,InetAddress.getByName("10.0.2.2"),10000);
				} catch (UnknownHostException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

				try {
					ds.send(dp);
					et.setText("");
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
//黑体字处为在以前代码上新加的内容,即解析获得的内容。
				
[b]			
				byte [] data = new byte[1024];
				dp2 = new DatagramPacket(data, data.length);
				try {
					ds.receive(dp2);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
//这里可以获得PC机上的IP,端口等信息。
				System.out.println("IP: " + dp2.getSocketAddress());//输出内容: IP: 10.0.2.2/10.0.2.2:10000



				try {
					System.out.println("data: "+new String(dp2.getData(),0,dp2.getLength(),"utf-8"));
				} catch (UnsupportedEncodingException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				//ds.close();
[/b]	

			}
		});
		
		
    }

}



不解android虚拟机的IP设定。
  • 大小: 20.6 KB
分享到:
评论

相关推荐

    pc机与android udp通信源代码

    供android初学者学习熟悉udp通信,pc机端用vc编写,已经测试通过。

    android udp通信 简单例程

    压缩包中的两个文件"VC代码:udp通信:PC机成功发送接收android端信息.rar"和"AndroidUdp1.3成功发送接收PC端数据.rar"分别包含了PC端和Android端的UDP通信示例代码。PC端通常使用C++或Java实现,而Android端则是...

    android与Pc实时通信

    1. 蓝牙/USB通信:除了网络通信,Android与PC也可以通过蓝牙或USB接口进行数据交换,适用于本地设备间的通信需求。 2. 游戏同步:游戏中的实时对战、多人协作往往需要Android与PC之间的快速数据同步。 3. 远程控制...

    Android Socket编程实例(与PC通信,不同手机中间通信)

    在Android开发中,Socket编程是实现设备间网络通信的关键技术,尤其在构建移动应用与桌面应用(如PC)交互的场景下。本实例主要讲解如何使用Android Socket进行客户端与服务器端以及不同Android设备间的通信。 首先...

    AndroidUDP网络传输聊天程序

    【Android UDP网络传输聊天程序】是一个使用用户数据报协议(UDP)进行通信的项目,它由两个部分组成:一个在个人计算机(PC)上运行的服务端,由Java编写,以及一个在Android智能手机上运行的客户端。这个程序展示...

    android手机与PC视频互通源码

    要实现手机与PC间的视频通信,必须选择合适的网络通信协议,如TCP/IP、UDP、WebSocket或WebRTC等。WebRTC是一种实时通信技术,特别适合于低延迟的视频通话。源码中可能包含了处理这些协议的类和接口。 4. **数据...

    安卓真机上UDP程序收不到PC机数据包的解决方法

    解决这个问题的第一步是确保PC机上的服务程序能够正确解析出数据包中的IP地址和端口号。这通常需要一个服务器程序来监听并处理这些数据包。文中提到,作者提供了一个PC端的服务程序,用于接收和解析UDP数据包。需要...

    Android例子源码简单实现手机与电脑的UDP通讯

    本项目是一个测试安卓和电脑UDP通讯...然后在安卓源码里面替换电脑IP,第二件事是打开项目里自带的exe点击开启端口监听,这样电脑和安卓客户端就可以使用UDP协议进行互发消息通讯了,本项目默认编译版本4.2.2.编码GBK。

    Android Socket UDP通讯:手机对手机or手机对PC,点对点,or广播通讯,包含发送端,接收端-测试通过运用项目中

    本教程将详细讲解如何利用Java在Android中实现UDP通信,包括手机对手机、手机对PC以及点对点和广播通讯。 1. **UDP基础知识** UDP是一种无连接的传输层协议,不保证数据包的顺序、可靠性和完整性,但其速度较快,...

    Android与PC Socket通讯

    #### 二、案例分析:Android设备与PC机之间的Socket通信 案例展示了如何通过Socket实现Android设备与PC机之间的通信。具体而言,PC机作为服务器端(Server),运行JavaServer程序;Android设备作为客户端(Client),...

    Android通过Socket(TCP/IP)与PC通讯

    通过以上分析,我们可以看出在Android上实现Socket通信与PC进行TCP/IP交互涉及到了网络编程、TCP/IP协议、异常处理等多个方面,理解并掌握这些知识点对于开发跨平台的通信应用至关重要。在实际开发过程中,需要结合...

    android手机与电脑视频通信

    在IT行业中,尤其是在移动通信和多媒体技术领域,"Android手机与电脑视频通信"是一个重要的应用场景。这个场景涉及到多个关键技术点,包括设备间的网络连接、实时流媒体处理、跨平台通信以及可能的编码与解码技术。...

    Android应用源码安卓与PC的Socket通信项目java版

    在IT行业中,Socket通信是一种广泛应用于网络编程的技术,它允许两个设备(如Android手机和PC)之间进行双向数据传输。本项目"Android应用源码安卓与PC的Socket通信项目java版"聚焦于如何使用Java在Android设备上...

    Android PC机摄像头摄像数据在Android手机上同步显示的源.rar

    标题中的“Android PC机摄像头摄像数据在Android手机上同步显示的源”暗示了一个跨平台的实时视频流项目,其中涉及到Android设备(手机)接收并显示来自PC机的摄像头数据。这个项目的核心是实现两个设备之间的实时...

    基于UDP的手机控制PC 的PC端程序

    系统包含了两个功能模块,其一是客户机的Android应用软件,其二则为Windows平台的PC上的功能软件。在工作过程中,利用Android手机的传感器采集数据信息,用作输入设备,通过无线局域网(Wi-Fi)与PC建立Socket通信,...

    基于Android平台的无线局域网通信APP设计与实现.pdf

    "基于Android平台的无线局域网通信APP设计与实现" 本文主要介绍基于Android平台的无线局域网通信APP的设计与实现。该APP使用基于TCP/IP或UDP/IP协议的socket编程思想,实现手机客户终端通过WiFi无线网络与其他手机...

    Android socket即时通信

    Android Socket通信是Android应用开发中的一个重要部分,它允许应用程序通过网络与其他设备进行数据传输,实现客户端与服务器之间的实时通信。在这个场景中,"Android socket即时通信"涉及到在Android设备上创建...

    Android源码——PC机摄像头摄像数据在Android手机上同步显示的源.zip

    在本项目中,我们探讨的是如何实现在Android设备上实时同步显示来自PC机摄像头的视频流。这个技术在远程监控、视频会议等场景中有广泛的应用。以下是对该项目中涉及的关键知识点的详细说明: 1. **Android开发环境*...

    Android程序研发源码Android Socket编程源码(与PC通讯).zip

    在Android开发中,Socket编程是一种常见且重要的技术,它允许Android设备通过网络与其他设备(如PC)进行双向通信。这份源码着重展示了如何在Android应用中实现Socket编程以实现与PC之间的通讯。以下是对相关知识点...

    pc实时显示Android屏幕画面

    总结来说,这个技术方案利用了Android的framebuffer接口、libjpeg库以及UDP通信,通过Java在PC端实现了实时接收和显示Android设备的屏幕画面。这种技术对于远程控制、演示、教学和开发测试具有很高的实用价值。

Global site tag (gtag.js) - Google Analytics