Android深入浅出系列之Socket—Socket编程(一)

  为什么要讲Socket呢?因为看过我蓝牙协议(一)和蓝牙协议(二)的文章的人知道,我要做的这个应用是把蓝牙笔里面的数据读取到手机里,就要用到基于Bluetooth协议的Socket,所以就也是为什么在这里我要讲一下Socket编程了。

  一:什么是Socket    

    它实际上是网络通信的一种接口,基于不同的协议,有各种不同的Socket,比如有基于TCP协议的Socket和基于UDP协议的Socket以及基于蓝牙协议的Socket,Android中使用的是Java的Socket模型。

    Socket在计算机行业通常称为”套接字“,用于描述IP地址和端口,是一个通信链的句柄。这是一个比较抽象的概念。计算机是拥有端口的,每一个端口都可以有一个应用程序来进行通讯的使用,比如:80端口是HTTP协议所使用的端口,21端口是FTP协议所使用的端口,端口是计算机和外界通讯的接口,这些接口都是逻辑的接口,端口号取值的范围是零到256乘以256减1,1024以下的端口都是操作系统使用的保留端口,以上的端口我们可以自由的来使用,不要和其他应用程序的端口冲突。

    应用程序可以通过“套接字”向网络发送请求或者应答网络的请求,这时候就把Socket分成了两部分,一部分是服务器端的Socket,这个Socket主要用来接收来自网络的请求,它一直监听在某一个端口上。一部分是客户端的Socket,这个Socket主要用来向网络发送数据。

  二:Socket通讯模型

  

    -UDP协议和TCP协议

    UDP协议和TCP协议是互联网使用最广的两种协议都是基于IP的协议。第一个区别是UDP协议是一个不太靠谱的协议,UDP协议把数据都打成数据包,数据包上自带通讯地址,也就是说我要把这个数据包发送到网络上的哪一个地址,通过网络把这个数据包发送出去,至于这个数据包是否发送到目的地,是否服务器端接收到了这个数据包,这个协议并不保证,就像中国的邮政,你是把信寄出去了,但是邮政系统不保证对方能收到你寄送的信。TCP发送数据的时候要求接收方接收到数据之后给一个回应,也就是你是否收到了,TCP可靠一些,当我们发送一些比较重要的数据的时候一般都使用TCP协议。另外一个区别是UDP协议发送的一个数据包它的容量是有限的,而TCP协议则没有这样一个限制。并不是说UDP协议一定就不如TCP协议,在不同的领域有不同是使用,UDP协议好处是速度相对快些。TCP协议相对慢些。

    -Socket通讯流程

    应用程序通过“套接字”也就是Socket可以选择这两种协议当中的一种,你可以选择用UDP发送数据,也可以选择用TCP发送数据,数据发送出去通过“通信信道”也就是IP的基础网络,来到服务器端(接收端),就可以接收到数据了。发送数据的时候用UDP协议,接收的时候也要用UDP协议,发送数据的时候用TCP协议,接收的时候也要用TCP协议,在发送的时候指定接收端的IP地址和端口号就可以了,究竟数据包或数据是如何发送的,框架已经帮我们封装好了,我们不去关心它了。

     

转载于:https://www.cnblogs.com/menglin2010/archive/2011/11/08/2240887.html

Android Socket通信编程 在上面的示例中,我们在MainActivity的onCreate()方法中创建了SocketClient实例,并调用sendMessage()方法发送消息到服务器。当然,在实际的应用中,我们还需要进行错误处理、线程管理等其他操作,以确保通信的可靠性和稳定性。除了Socket客户端,我们还可以在Android应用中创建Socket服务器,接受客户端的连接并处理数据。在上面的示例中,我们创建了SocketClient类,它接受服务器的IP地址和端口号作为参数。 阅读详情

相关推荐

Android平台Socket编程实战指南

Android网络编程主要涉及客户端与服务器之间的数据交换,可以通过HTTP、HTTPS、Socket等多种协议实现。开发者需具备网络通信原理知识,熟悉Android SDK提供的网络API,以及相关的安全和优化技巧。Socket,也称为套接字,是网络编程的基础。它是应用程序之间进行通信的端点,实现了不同主机进程间的双向通信。在数据通信中,Socket起到了抽象层的作用,屏蔽了底层网络协议的复杂性,为开发者提供了套简洁的API来构建网络应用。

weixin_32661831的博客 1150

基于 JavaSocket 编程开发聊天室【100013037】

用 JavaSocket 编程开发聊天室 用 Java 图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到个服务器。每个客户端能够输入账号。 可以实现群聊(聊天记录显示在所有客户端界面)。 完成好友列表在各个客户端上显示。 可以实现私人聊天,用户可以选择某个其他用户,单独发送信息。 服务器能够群发系统消息,能够强行让某些用户下线。 客户端的上线下线要求能够在其他客户端上面实时刷新。 说明: 1.客户端和服务端都用 swing 做成图形界面 2.客户端与服务端都可以用Socket进行通信 3.客户端和服务端都实现Runnable接口,开启线程。 4.通过流将数据封装,通过用户名对不同用户进行区别

Android-Lemon个简单轻量级的AndroidSocket框架

个简单、轻量级的Android Socket框架。Android Socket Client Library.

【小沐学AndroidAndroid实现socket网络通信

🍺SOCKET网络通信系列文章链接如下:🍺 🎈【小沐学python】()Python简介和安装🎈 🎈Python实现socket网络通信🎈 🎈C++实现socket网络通信(Windows)🎈 🎈Android实现socket网络通信🎈 🎈nodejs实现socket网络通信🎈 Android实现socket网络通信1、简介1.1 socket流程1.2 需要在子线程运行1.3 需要的权限2、环境配置2.1 Android Studio下载2.2 真机无线调试3、TCP方式3.1 服务端3.2 客户端3

爱看书的小沐 1万+

Android:这是份很详细的Socket使用攻略

Socket的使用在Android网络编程中非常重要 今天我将带大家全面了解Socket及 其使用方法即套接字,是应用层 与 TCP/IP 协议族通信的中间软件抽象层,表现为个封装了 TCP / IP协议族 的编程接口(API)1、Socket不是种协议,而是编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)2、即:通过Socket,我们才能在Andorid平台上通过 TCP/IP协议进行开发3、对用户来说,只需调用Socket去组织数据,以符合指定的协议,即可通信。

Hunter2916的博客 8341

深入理解 Android Socket 编程(最新)

Android 开发中,Socket 编程种常用的网络通信方式。通过 Socket,应用程序可以在设备之间建立可靠的、双向的通信连接,实现数据交换和共享。本篇文章将带您深入了解 Android Socket 编程,从基础概念到实战应用,让您全面掌握这重要技术。提示:以下是本篇文章正文内容,下面案例可供参考通过本文的介绍,我们了解了Android Socket的基本概念和相关代码示例。在实际开发中,Socket编程可能会涉及到更多的细节和问题,需要我们更加深入地学习和实践。

学无止境 1877

(原创)Socket开发入门与实例

Socket是Java网络编程的基础了解Socket通信,在java和android开发中都有用处那么现在就来大概说下如何搭建服务端和客户端从而实现Socket通信的首先我们从java方面开始讲起服务端代码具体如下:/** * Created by THINK on 2018/6/4. * 服务端 */ public class SocketService { public stat...

Android_xiong_st的博客 712

android socket编程实例

android客户端通过socket与服务器进行通信可以分为以下几步: 应用程序与服务器通信可以采用两种模式:TCP可靠通信 和UDP不可靠通信。 (1)通过IP地址和端口实例化Socket,请求连接服务器: socket = new Socket(HOST, PORT); //host:为服务器的IP地址 port:为服务器的端口号 (2)获取Socket流以进行读写,并...

Dream home 8万+

Android网络编程--Socket编程

引言 Android网络编程直都是我想记录的篇文章,由于种种原因,直推迟,终于在在今天开始写了。这是个好的开始,O(∩_∩)O哈哈~。 网络上有很多关于Android网络编程的文章,我感觉没有个适当的总结合适我的。所以,今天我决定将Android网络编程系列文章做个总结,在这里与大家分享。 这几篇系列文章总的分为两大模块:Socket编程与HTTP编程(关于在Android中的)。...

pingping_010的博客 5937

AndroidSocket通讯】

Android Socket通讯

w_Eternal的博客 6616

Android之简单Socket编程

最近呢,比较烦。快要毕业了,ge

Joker_Ya的专栏 3056

Android Socket使用详解

即套接字,是个对 TCP / IP协议进行封装 的编程调用接口(API)即通过Socket,我们才能在Andorid平台上通过TCP/IP协议进行开发Socket不是种协议,而是编程调用接口(API),属于传输层(主要解决数据如何在网络中传输)成对出现,对套接字:Socket ={(IP地址1:PORT端口号)(IP地址2:PORT端口号)}

lingyued的博客 1501

Android Socket编程:建立连接、发送和接收信息(附工具类)

Android Socket编程:建立连接、发送和接收信息(附工具类)

weixin_51522235的博客 2409

java socket框架_优秀的国产高性能TCP/UDP/HTTP开源网络通信框架——HP-Socket

介绍HP-Socket是国人开发套高性能的TCP/UDP/HTTP网络通信框架,包含了服务端、客户端以及Agent组件,可用于各种不同应用场景的通信系统,并且提供了C/C++、C#、Delphi、E、Java、Python等编程语言接口。 HP-Socket 对通信层完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧...

weixin_39665762的博客 1484
上一篇: SCOM 2007 R2安装部署各组件支持的操作系统详细列表
下一篇: 人生是什么?——感悟2:绝望时候要相信自己
weixin_33734785
博客等级 码龄11年 4167粉丝 2231原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值