Android/Socket编程 简单C/S模式

安卓学习笔记40:基于套接字网络编程 1. 了解基于套接字网络有两种传输模式; 2. 掌握基于TCP/IP协议的套接字网络编程 阅读详情

===什么是 Socket ? 

Socket传输模式:  1. 面向连接   2. 无连接(还没研究,这里不提了) 

面向连接使用TCP协议, 这个模式下Socket必须在发送数据之前与目的地Socket取得连接。

建立连接后,既可使用流接口 进行对于的打开,读,写,关闭操作。并且发送数据的顺序,

与接收的顺序保持一致。

见下图:


===Socket构造

在包java.net中提供了两个类:Socket,ServerSocket分别表示双向连接的客户端和服务端。

新建ServerSocket对象,并绑定监听端口

(如上图TCP服务器端0-2步)

void setupServerSocket() throws IOException {
		serverSocket = new ServerSocket();
		serverSocket.setReuseAddress(true);
		// 监听的端口 范围 [1024,65535)
		serverSocket.bind(new InetSocketAddress(port));
	}

阻塞等待客户端发起连接(accept)

				// 阻塞程序 等待客户端连接
				Socket cmdClientSocket = serverSocket.accept();
				// 新起线程去处理cmdClientSocket发来的请求
				// 因为服务端对应客户端可能是 1:0~n
				SessionThreadThread newSession = new SessionThreadThread(
						cmdClientSocket);
				newSession.start();
				// 将线程注册到统一地点 便于管理
				// 这里使用的List管理这些线程
				ftpServerService.registerSessionThread(newSession);

读取客户端传来的数据(read)

BufferedReader in = new BufferedReader(new InputStreamReader(
					cmdClientSocket.getInputStream()), 8192); // use 8k buffer
			while (true) {
				String line = null;
				line = in.readLine();
				if (line != null) {
					// TODO: 
				} else {
					break;
				}
			}

服务端写操作传回客户端(write)

BufferedOutputStream out = new BufferedOutputStream(
					cmdClientSocket.getOutputStream(), Defaults.dataChunkSize);
			out.write(bytes);
			out.flush();

关闭操作(close)

serverSocket.close();
cmdClientSocket.close();
综上ServerSocket会阻塞自身,直接accept()方法得到一个clientSocket,然后操作clientSocket,与客户端的Socket进行通讯。这点在上图中能很好的体现。 附上: Wifi下 Android(客户端)与PC(服务端)通信
android客户端实现与服务器交互的用户登录功能 实现一个简易的用户登录,客户端为android移动应用,服务器使用javaweb servlet实现,账号:admin;密码:123456; 立即下载

相关推荐

项目文件——基于CS模式的android手机与PC机通信系统的开发

项目文件——基于CS模式的android手机与PC机通信系统的开发

《基于C/S模式的android手机与PC机通信系统的开发》项目

基于C/S模式的android手机与PC机通信系统的开发 作者:郑海波 单位:南京邮电大学 通信与信息工程学院 信号与信息处理 6班 学号:1012010638 邮箱:zhb931706659@126.com ------------------------------------------------------------------------------------------

郑海波(莫川)的优快云博客 1万+

Android C/S结构代码

基于apache mina框架的C/S结构代码,包含图片传输代码

android编写服务器端,用Android搭建客户端 手机和服务器交互开发实例

笔者以前是学的Java EE,由于项目需要要开发Android,所以临时补了一个多星期,主要是手机端和服务器端交互,双向开发的。首先在服务器端,我采用的是SSH框架,struts 2集合了JSON插件,服务器和客户端的信息交互采用的JSON来传输,由于在服务器端用了Struts 2,所以我就用装了一个JSON插件。这样,很轻易的就把服务器端的信息用JSON的形式发送到了手机端。以下是代码:首先,在...

weixin_30872577的博客 1500

计算机网络 基于C/S模式的简单聊天程序

计算机网络 基于C/S模式的简单聊天程序,可运行

C++与android通过socket通信(上个版本端口弄错了,这个可以运行)

C++编写的服务器端跟android上编写的手机客户端进行socket通信,传动多种数据。用VC6.0直接打开C++ Server,用eclipse直接打开android socketTest。注意修改一下安卓代码中的IP地址。程序中java和C++的通信的内容使用了:http://download.youkuaiyun.com/detail/nuptboyzhb/4595415中的内容,在此感谢。

Android C++ 系列:Linux Socket 编程(二)网络套接字函数_安卓用c

三方握手完成后,服务器调用accept()接受连接,如果服务器调用accept()时还没有 客户端的连接请求,就阻塞等待直到有客户端连接上来。典型的服务器程序可以同时服务于多个客户端,当有客户端发起连接时,服务器调用的 accept()返回并接受这个连接,如果有大量的客户端发起连接而服务器来不及处理,尚未 accept的客户端就处于连接等待状态,listen()声明sockfd处于监听状态,并且最多允许有 backlog个客户端处于连接待状态,如果接收到更多的连接请求就忽略。查看系统默认backlog。

2401_84976246的博客 1193

基于C/S模式的android手机与PC机通信系统的开发

MFC界面编程 C++网络编程 C++多线程编程 接收消息与发送消息的分离 Windows系统编程

Android登录界面的实现

最近由于项目需要,宝宝好久没搞Android啦,又是因为项目需要,现在继续弄Android,哎,说多了都是泪呀,别的不用多说,先搞一个登录界面练练手,登录界面可以说是Android项目中最常用也是最基本的,如果这个都搞不定,那可以直接去跳21世纪楼啦。废话不多说,先上效果图

文明的小流氓的博客 1万+

opencv-meshgrid

使用opencv::repeat函数和std::iota函数完成meshgrid功能。 X Y Z 通俗的说就是根据Z的大小生成X矩阵,Y矩阵

yuegooxi的博客 1607

保姆级教程:用Python 3.10和Ollama在Windows上搞定LightRAG本地部署(附环境配置避坑指南)

本文提供了一份详细的Windows系统下LightRAG本地部署指南,涵盖Python 3.10环境配置、Ollama模型服务安装到LightRAG核心组件部署的全流程。特别针对Windows平台常见问题提供解决方案,帮助开发者快速搭建高效的检索增强生成(RAG)系统,实现专业领域知识的智能检索与整合。

weixin_28725407的博客 488

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.6节Socket网络通信

本节书摘来自异步社区《Android 3D游戏开发技术宝典——OpenGL ES 2.0》一书中的第2章,第2.6节Socket网络通信,作者 吴亚峰,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.6 Socket网络通信Android 3D游戏开发技术宝典——OpenGL ES 2.0伴随着移动互联网的高速增长,智能手机上的游戏娱乐应用也逐...

weixin_33841503的博客 154

ThingsBoard 仪表板状态

请先通过阅读仪表板概述和仪表板入门案例来熟悉ThingsBoard的仪表板。文章希望通过浅显的文字描述什么是仪表板状态及如何使用。 概念 状态功能使得仪表板可以分层,配合小部件的动作,实现多层仪表板之间的跳转.每个状态对应一个仪表板的图层 每个仪表板有一个默认的根状态, 根状态可以理解为默认状态, 也就是打开仪表板默认展示的仪表板图层.编辑模式下, 点击右上角的图标来管理状态.添加多个状态后左上角出现状态切换(图层切换)下拉列表可以通过选中根状态复选框切换新的默认展示的状态/图层配合小部件的动作,实现状

物联网三分钟 2308

Android网络编程

网络的基本知识 - IP地址和端口号 IP地址:网络中每台计算机都必须有唯一一个IP地址做标识,用一组由“.”分隔的十进制数组成 端口号:具有网络功能的应用软件的标识号 网络协议 OSI七层模型 TCP/IP概念层模型 功能 TCP/IP协议族 应用层 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示...

qq_39485117的博客 432

为什么 ChatGPT 生成的下载地址会长成 sky-metal-cards-jerry.quirkypony34.chatgpt.site 这种奇怪的样子

我今天看到的这条地址,确实很容易让人产生一种感觉,ChatGPT 明明只是生成了几张 PNG 图片和一个压缩包,为什么最终拿到的却不是类似这种看起来很正规的下载链接,而是一长串带有、UUID、apidecks的地址。更容易让人疑惑的是,其中还出现了一个平时很少见到的域名。这并不是浏览器随机生成的临时 URL,也不是某个来历不明的第三方文件服务器。根据 OpenAI 在 2026 年公布的 ChatGPT Sites 文档和相关服务条款,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 64

matlab 一维相位解缠

一维相位解缠算法的matlab代码实现。

点云侠的博客 372

安卓Socket通信实例(C/S)

安卓Socket通信实例 ​ 推荐一个很棒的文章 ​ https://blog.youkuaiyun.com/qq7342272/article/details/9698413 本文摘自: https://whatsblog.icu/index.php/Android/17.html 1、Socket通信必须知道的地方 1、首先,Socket通信采用TCP模式,客户端需要连接到服务端 2、采用网络,需要打开Internet权限 3、需要合理调用线程,熟悉线程与输入输出流的使用 4、socket服务端和客户

u011309745的博客 1771

openharmony之UniProton内核技术揭秘:鸿蒙面向工业控制领域的RTOS设计之道

UniProton是鸿蒙操作系统面向工业控制领域的轻量级实时操作系统(RTOS),专为资源受限的嵌入式设备设计。作为鸿蒙生态的重要组成部分,UniProton提供了高效的实时任务调度、内存管理和IPC机制,满足工业控制场景对实时性和可靠性的严格要求。想象一下,UniProton就像一个超级聪明的管家,管理着电子设备里所有的工作。让你的智能手表既能显示时间,又能接收消息让家里的扫地机器人既能避开障碍物,又能记住哪里已经打扫过了让工厂里的机器人手臂既能精确地抓取东西,又能快速地完成任务实时性强。

m0_67505153的博客 883

【免杀前置课——Windows编程】十五、网络编程——C/S,B/S模式分别是什么?WinSocket、Socket传输的定义和其特点、实现简易通信(附代码)

【免杀前置课——Windows编程】十五、网络编程——C/S,B/S模式分别是什么?WinSocket、Socket传输的定义和其特点、实现简易通信(附代码)

m0_62783065的博客 924

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

BP神经网络回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 391

C++经典面试题100例及答案

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。答:常对象是指在任何场合都不能对其成员的值进行修改的对象。答:所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

usstmiracle的博客 3万+

Android 网络编程(1)——Socket编程So easy

Android网络编程概述 首先,了解的几个问题: 1、Android系统网络相关API接口 1)、java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流、数据包套接字(socket)、internet协议、常见Http处理等。比如创建URL,以及URLConnection/HTTPURLConnection对象、设置链接参数、链接到服务器、向服务器写数据、从服务器读取数据等通信。这些在Java网络编程中均有涉及。 2)、Org.apache接口 对于大部分应用程序而言JD

m0_54852350的博客 657

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android Socket使用详解

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

2301_80488270的博客 1808

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android c++ socket编程,C++ 中 socket编程实例详解

C++ 中 socket编程实例详解sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket(...

weixin_42398171的博客 778

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Android APK之代码混淆与反编译
下一篇: Android/读取指定类型的文件
多格AI零代码
博客等级 码龄15年 40粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值