Android学习笔记--Scoket编程

简介:
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

1 . 什么是Socket

Socket英文意为"插座"

所谓Scoket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄

应用程序通常通过"套接字"向网络发出请求或者应答网络请求

2 . Socket基本通信模型


Android学习笔记--Scoket编程 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


3 . 使用基于TCP协议的Socket


Android学习笔记--Scoket编程 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


ServerSocketActivity代码 例 :   1 . 声明控件对象(略)
2 . 获得控件对象(略)
3 . 绑定事件(略)
4 . 创建监听器对象
Public void onClick(View v) {
New ServerThread().start();
}

// TCPserver
Class ServerThread extends Thread {
Public void run () {
// 声明一个serverSocket对象
ServerSocket serverSocket = null;
Try {
// 创建serverSocket对象并在4567端口监听
serverSocket = new ServerSocket(4567);
// 调用serverSocket的accept方法,接受客户端所发送的请求
Socket socket = serverSocket.accept(); // 阻塞函数
// 从socket当中得到inputstream对象
InputStream inputStream = socket.getInputStream();
Byte buffer [] new bute [1024 * 4];
Int temp = 0 ;
// 从inputStream当中读取客户端所发送的数据
While ((temp = inputStream.read(buffer))  !=  -1) {
System.out,println(new String(buffer , 0 ,temp));
}
} catch (Execption e) {
e.printStackTrace();
} finally {
Try {
serverSocket.close();
} catch (IOExecption e) {
e.printStackTrace();
}
}
}
}

TCPClient 代码 例 :
Public static void main (String [] args) {
Try {
// 创建一个Socket对象,指定服务器端的ip地址和端口号
Socket socket = new Socket("192.168.1.1" , 4567);
// 使用InputStream读取硬盘上的文件
InputStream inputStream = new FileInputStream("F://file/words.txt");
// 从Socket上得到outputStream
outputStream outputStream = socket.getOutputStream();
Byte buffer [] = new byte[4*1024];
Int temp = 0;
// 将inputStream的数据取出并写入到outputStream
While ((temp = inputStream.read(buffer)) != -1) {
outputStream.write(buffer , 0 ,temp);
}
outpurStream.flush();
} catch (Execption e) {
e.printStackTrace();
}
}


// UDPServer
Class ServerThread extends Thread {
Public void run () {
Try {
// 创建一个DatagramSocket 对象,并制定监听端口号
DatagramSocket socket = new DatagramSocket(4567);
Byte data [] = new byte [1024];
// 创建一个空的DatagramPacket对象
DatagramPacket packet = new DatagramPacket (data , data.length);
// 使用receive方法接受客户端所发送的数据
Socket.receive(packet); // 阻塞方法
String result = new String(packet.getData() , packet.getOffset() , packet.getLength()); // 设置数据偏移量 , 得到该次数据的长度
System.out.println("result-->" + result);
} catch (Execption e) {
e.printStackTrace();
}
}
}

// UDPClient
Public static void main (String [] args) {
Try {
// 创建一个DatagramSocket 对象,并制定监听端口号

DatagramSocket socket = new DatagramSocket(456




7);

InetAddress serverAddress = InetAddress.getByName("192.168.1.1");
String str = "hello";
Byte data [] = str.getBytes();
DatagramPacket packet = new DatagramPacket(data , data.length , serverAddress , 4567);
Socket.send(packet);
} catch (Execption e) {
e.printStackTrace();
}
}

4 . 使用基于UDP协议的Socket




     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360562,如需转载请自行联系原作者




相关文章
|
10月前
|
Java 调度 Android开发
构建高效Android应用:探究Kotlin多线程编程
【2月更文挑战第17天】 在现代移动开发领域,性能优化一直是开发者关注的焦点。特别是在Android平台上,合理利用多线程技术可以显著提升应用程序的响应性和用户体验。本文将深入探讨使用Kotlin进行Android多线程编程的策略与实践,旨在为开发者提供系统化的解决方案和性能提升技巧。我们将从基础概念入手,逐步介绍高级特性,并通过实际案例分析如何有效利用Kotlin协程、线程池以及异步任务处理机制来构建一个更加高效的Android应用。
|
10月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
10月前
|
存储 Java Android开发
OpenCV3 安卓应用编程:1~6 全
OpenCV3 安卓应用编程:1~6 全
69 0
|
10月前
|
存储 算法 开发工具
OpenCV 安卓编程示例:1~6 全
OpenCV 安卓编程示例:1~6 全
186 0
|
10月前
|
Java 调度 数据库
Android 性能优化: 如何进行多线程编程以提高应用性能?
Android 性能优化: 如何进行多线程编程以提高应用性能?
132 0
|
4月前
|
API Android开发 iOS开发
深入探索Android与iOS的多线程编程差异
在移动应用开发领域,多线程编程是提高应用性能和响应性的关键。本文将对比分析Android和iOS两大平台在多线程处理上的不同实现机制,探讨它们各自的优势与局限性,并通过实例展示如何在这两个平台上进行有效的多线程编程。通过深入了解这些差异,开发者可以更好地选择适合自己项目需求的技术和策略,从而优化应用的性能和用户体验。
|
8月前
|
移动开发 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性与编程实践
【7月更文挑战第8天】在移动开发的广阔天地中,安卓和iOS这两大操作系统各自占据着半壁江山。它们在用户界面设计、系统架构及开发工具上展现出截然不同的特色。本文将深入探讨这两个平台在技术实现和开发生态上的关键差异,并分享一些实用的开发技巧,旨在为跨平台开发者提供有价值的见解和建议。
|
9月前
|
安全 IDE Android开发
探索Android与iOS开发的差异:平台特性与编程实践
【6月更文挑战第17天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据半壁江山。它们在用户群体、系统架构以及开发环境上的差异,为开发者带来了不同的挑战和机遇。本文深入探讨了这两个平台在技术实现、界面设计、性能优化等方面的主要区别,并提供了实用的开发建议,旨在帮助开发者更好地理解各自平台的特性,从而创造出更加优秀的移动应用。
|
8月前
|
安全 Java 数据处理
Android多线程编程实践与优化技巧
Android多线程编程实践与优化技巧
|
9月前
|
安全 Java 数据处理
Android多线程编程实践与优化技巧
Android多线程编程实践与优化技巧

热门文章

最新文章

  • 1
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    Android历史版本与APK文件结构
  • 3
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 4
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 1
    android FragmentManager 删除所有Fragment 重建
    17
  • 2
    Android实战经验之Kotlin中快速实现MVI架构
    24
  • 3
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    32
  • 4
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    42
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    132
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    41
  • 7
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    55
  • 8
    Android历史版本与APK文件结构
    155
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    46
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    40