- 浏览: 67675 次
- 性别:
- 来自: Mercury
最新评论
一、什么是Socket
Socket是基于不同的协议的网络通信的接口。Socket的英文原意是“插座”,所谓socket通常也被称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过Socket向网络发出请求或者应答网络请求。
二、Socket基本通信模型
三、使用基于TCP协议的Socket
例子程序,此例子需要两个项目,一个是Android项目作为服务器端,一个可以是Java项目作为客户端。运行时需要先在真机上面运行服务端,开启服务,然后在eclipse中运行客户端。
SocketActivity.java
package com.android.activity; import java.io.InputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.ServerSocket; import java.net.Socket; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SocketActivity extends Activity { private Button startTCPButton = null; private Button startUDPButton = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startTCPButton = (Button)findViewById(R.id.startTCPButton); startTCPButton.setOnClickListener(new StartTCPButtonListener()); startUDPButton = (Button)findViewById(R.id.startUDPButton); startUDPButton.setOnClickListener(new StartUDPButtonListener()); } class StartTCPButtonListener implements OnClickListener{ public void onClick(View v) { Thread thread = new Thread(new TCPServerThread()); thread.start(); } } class StartUDPButtonListener implements OnClickListener{ public void onClick(View v) { Thread thread = new Thread(new UDPServerThread()); thread.start(); } } class TCPServerThread implements Runnable{ //TCP的服务器端 public void run() { //声明一个ServerSocket对象 ServerSocket serverSocket = null; try{ //创建一个ServerScoket对象,并让其监听点卡9999 serverSocket = new ServerSocket(9999); //accept是一个阻塞的方法,只有有数据过来才执行, //没有接收到则不向下执行 Socket socket = serverSocket.accept(); //从socket对象中得到InputStream对象 InputStream inputStream = socket.getInputStream(); byte buffer[] = new byte[1024*4]; int temp = 0; //从InputStream当中读取客户端所发生的数据 while((temp = inputStream.read(buffer)) != -1){ System.out.println(new String(buffer,0,temp)); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ serverSocket.close(); }catch(Exception e){ e.printStackTrace(); } } } } class UDPServerThread implements Runnable{ //UDP服务器端口 public void run(){ try{ //创建一个DatagramSocket对象,并制定监听的端口 DatagramSocket socket = new DatagramSocket(9998); byte data[] = new byte[1024]; //使用UDP所发送的数据包,创建一个空的DatagramPacket对象, //用来接收从客户端发送过来的数据 DatagramPacket packet = new DatagramPacket(data,data.length); //使用receive方法接收数据 socket.receive(packet); //data长度定位1024,如果传输的数据不足1024就会在后面出现乱码 String result = new String(packet.getData(),packet.getOffset(),packet.getLength()); System.out.println("resutl --> " + result); }catch(Exception e){ e.printStackTrace(); } } } }
TCPClient.java
package com.android.client; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class TCPClient { public static void main(String [] args){ try{ //创建一个Socket对象,指定服务器端口的IP和端口号 Socket socket = new Socket("122.158.93.206",9999); InputStream inputStream = new FileInputStream("./txt/panghuang.txt"); OutputStream outputStream = socket.getOutputStream(); byte buffer[] = new byte[1024*4]; int temp = 0; while((temp = inputStream.read(buffer)) != -1){ outputStream.write(buffer,0,temp); } }catch(Exception e){ e.printStackTrace(); } } }
四、使用基于UDP协议的Socket
UDPClient.java
package com.android.client; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPClient { public static void main(String[] args) { try{ //创建一个DatagramSocket对象 DatagramSocket socket = new DatagramSocket(9998); //创建一个InetAddree InetAddress serverAddress = InetAddress.getByName("122.158.93.206"); String s = "Hello Android"; byte data[] = s.getBytes(); DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,9998); socket.send(packet); }catch(Exception e){ e.printStackTrace(); } } }
发表评论
文章已被作者锁定,不允许评论。
-
Android40_Dialog
2011-11-14 00:11 2998Dialog是Android常用的对话框控件。AlertDia ... -
Android39_Clock和TimePicker
2011-11-14 00:08 2361一、AnalogClock和DigitalClock ... -
Android38_ImageView和Gallery
2011-11-14 00:07 3615一、ImageView使用方法 ImageVi ... -
Android37_JSON数据解析
2011-11-08 00:14 2349一、JSON介绍 JSON(JavaSc ... -
Android36_Animations使用(四)
2011-11-08 00:14 3418一、LayoutAnimationsContrlller ... -
Android35_Animations使用(三)
2011-11-08 00:13 2651一、AnimationSet的具体使用方法 ... -
Android34_Animations使用(二)
2011-11-08 00:12 1959在代码中使用Animations可以很方便的调试、运行 ... -
Android33_Animations使用(一)
2011-11-08 00:12 2287一、Animations介绍 Anima ... -
Android31_AppWidget使用(二)
2011-11-05 00:09 2510一、PendingIntent介绍 PendingIn ... -
Android30_AppWidget使用(一)
2011-11-05 00:08 2262一、App Widget定义 App ... -
Android32_Notification用法
2011-11-05 00:09 1889Android系统的状态栏(Status Bar)中有一 ... -
Android29_SeekBar和RatingBar
2011-11-02 23:21 2120一、使用SeekBar步骤: SeekB ... -
Android28_ExpandableListActivity
2011-11-02 23:21 1488ExpandableListActivity就是可扩展的 ... -
Android27_AutoCompleteTextView
2011-11-02 23:21 1093一、创建AutoCompleteTextView ... -
Android26_DatePicker
2011-11-02 23:20 1782一、DatePicker和DatePickerDialo ... -
Android25_Spinner使用方法
2011-11-02 23:20 2816一、创建Spinner的步骤 1.在布局 ... -
Android24_Service初步
2011-10-18 22:27 1008一、Service概念 ... -
Android22_WIFI网络操作
2011-10-18 22:12 1695一、什么是WIFI WIFI就是一种无线 ... -
Android21_广播机制(二)
2011-10-18 22:00 1007一、注册BroadcastReceiver的方法 ... -
Android20_广播机制(一)
2011-10-18 21:48 1077一、Android广播机制介绍 Android:操作系统 ...
相关推荐
Android Socket编程是移动应用开发中实现设备间网络通信的关键技术。Socket,又称套接字,是一种网络编程接口,允许应用程序通过网络与其他设备上的应用程序进行数据交换。本篇将深入探讨Socket的基本概念、通信模型...
在Android平台上开发应用程序时,有时候我们需要实现客户端与服务器之间的实时通信,这通常涉及到网络编程,尤其是Socket编程。在这个“android_socket_chat.zip”压缩包中,包含了一个简单的Android聊天应用的示例...
下面我们将深入探讨Android中的Socket编程及其在聊天应用中的应用。 1. **Socket基础** - **定义**:Socket是进程间通信(IPC)的一种形式,特别适用于网络环境,它为两台机器上的进程提供了一种直接通信的途径。 ...
基于android平台的服务器和客户端,使用android studio 编写,比较基础,适合初学者学习。熟悉简单的C/S,Socket编程。
标题 "sp_java_handsomemmf_socket_android监控_android_" 暗示了这是一个关于使用Java、Socket编程技术在Android平台上实现手机实时视频监控的项目。描述指出,源码包括了客户端代码,这意味着开发者可以了解并学习...
在Android平台上,与个人计算机(PC)进行通信通常涉及到网络编程,特别是使用Socket技术。"Android-PC-socket.zip"这个压缩包很可能包含了关于如何在Android客户端和PC服务端之间建立Socket连接,进行数据传输的...
在Android平台上,Socket编程是一种常见的通信机制,它允许设备通过网络进行双向数据交换。在这个“PPTClient.rar”项目中,我们看到一个Android应用(PPTClient)利用Socket技术来远程控制PC端的PowerPoint(PPT)...
在Android平台上进行网络通信时,Socket通信是一种常见且重要的方式。Socket可以理解为网络上的一个端点,允许设备之间建立连接并交换数据。本压缩包文件"基于Socket通迅—Android客户端和服务器端.rar"提供了关于...
在Android应用开发中,Socket编程是实现设备间通信的重要手段,尤其在构建网络服务、实时数据传输等场景中不可或缺。本教程将引导初学者逐步理解并掌握Android中的Socket编程技术。 首先,Socket在计算机网络中被...
### Android中的Socket编程详解 #### 一、引言 在移动互联网时代,应用程序之间的网络通信变得尤为重要。Android作为主流的移动操作系统之一,在进行网络通信时提供了多种方式,其中Socket编程是一种非常基础且...
在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在客户端和服务器端的数据交互中。...这对于开发者来说是一个很好的学习和参考案例,有助于深入理解Android网络编程和Socket通信技术。
在Android平台上进行网络通信时,Socket编程是一种常见且重要的技术。"android_socket_chat"这个项目很可能是关于如何在Android设备上实现一个基于Socket的聊天应用的示例。在这个项目中,开发者可能通过Socket连接...
在Android平台上,Socket编程是应用程序之间,或者设备与服务器之间通信的一种重要方式。"android_socket简单例子"这个项目就是展示了如何在Android应用中使用Socket进行客户端和服务端的通信。在这个例子中,我们将...
Android 平台上的套接字(Socket)编程是移动应用开发中的重要部分,它允许设备通过网络与其他设备或服务器进行双向通信。在本示例中,我们将探讨如何使用 Java 的 Socket API 在 Android 上实现一个简单的聊天应用...
对于开发者来说,深入理解Socket编程不仅可以提升网络编程技能,还能为构建跨平台的通信应用打下坚实基础。通过分析和实践这些示例,可以学习到如何建立连接、发送和接收数据、处理异常以及关闭连接等关键步骤,从而...
android socket编程实例
Android Socket编程实践
在Android开发中,Socket编程是实现设备间通信的重要手段,特别是在构建网络应用程序时。本教程将深入探讨如何在Android客户端和Java服务端之间利用Socket进行数据传输。首先,我们需要了解Socket的基本概念。Socket...
在Android平台上进行网络通信时,Socket编程是一种常见且重要的技术,它允许设备通过TCP或UDP协议与其他设备或服务器进行双向数据传输。在这个实例中,我们将深入探讨如何在Android客户端和Java服务器端实现Socket...
在Android平台上进行网络编程时,Socket通信是一种常见且重要的技术,它允许设备间进行双向通信。本示例主要探讨如何在Android中实现一个简单的Socket服务器,以便与其他Android客户端或者任何支持Socket通信的设备...