Android客户端与PC服务器实现Socket通信(wifi)

Android与PC端WIFI通信 一、摘要 通过笔记本WIFI热点虚拟网络供android手机端使用,笔记本作为通信的服务器端,android手机作为客户端,通过socket进行通信。 二、准备工作 1. 在eclipse下写好服务器端处理代码,包括侦听的端口号,客户端IP地址获取,发送的数据处理 2. 搭建好android开发环境,直接以手机为终端,apk直接会安装到手机上,方便测试。 3. 下载一个WIFI共享软件, 阅读详情
本文介绍Android终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通过WIFI连接和PC处于同一局域网。

1. PC服务器启用ServerSocket

两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。

使用ServerSocket对象监听来自客户端的Socket连接

复制代码
//创建ServerSocket对象
//by wayne from www.cnblog.com/dwayne/
ServerSocket ss = new ServerSocket(30000); //监听来自客户端的请求 while(true){ Socket s = ss.accept(); … }
复制代码

如果没有连接,则将一直处于等待状态。

当接收到连接请求后,获取消息到输入流,并保存到文件。

复制代码
//接收客户端消息
//by wayne from www.cnblog.com/dwayne/

BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); String str; BufferedWriter bw = new BufferedWriter(new FileWriter("D:/ApInfo"+ (i++) +".txt")); while ((str = in.readLine()) != null) { System.out.println(str); bw.write(str); bw.newLine(); }
复制代码

2. Android终端使用Socket通信

客户端使用Socket的构造器连接服务器,指定服务器IP和端口号就可以了。

Socket s = new Socket(“192.168.1.100”, 30000);

这样服务器端的accept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。再进行通信时就没有服务器和客户端之分了,都是通过输入输出流进行通信。

 详细步骤

采用Handler和TimerTask来定时扫描AP信息并发送给服务器端。

TimerTask规定了到达指定的时间所要进行的任务。

复制代码
TimerTask task = new TimerTask(){

    public void run() {
        Message message = new Message();
        message.what = 1;
        handler.sendMessage(message);
    }   
       
}; 
复制代码

handler传递message内容:

复制代码
Handler handler = new Handler(){

    public void handleMessage(Message msg) {
        switch (msg.what) {
        case 1:                
            // 执行定时器时间到了之后由handler传递的任务
            break;
        }
        super.handleMessage(msg);
    }

};
复制代码

因为需要持续执行扫描任务,所以启用新线程执行定时任务

复制代码
//启动单独线程定时向服务器发送AP信息
//by wayne from www.cnblogs.com/dwayne
new Thread(){ @Override public void run() { // TODO Auto-generated method stub timer.schedule(task, 2000,10000); //在2秒后每10秒执行一次定时器中的方法 } }.start();
复制代码

接下来扫描AP信息并发送给服务器端,然后将结果保存。

WifiManager wifiManager=(WifiManager) getSystemService(WIFI_SERVICE);
wifiManager.startScan();
mWifiList = wifiManager.getScanResults();

由WifiManager说明可知,它可以用于处理已配置的网络,当前连接的网络及AP信息的扫描等情况。

This class provides the primary API for managing all aspects of Wi-Fi connectivity. Get an instance of this class by calling Context.getSystemService(Context.WIFI_SERVICE). It deals with several categories of items:

  • The list of configured networks. The list can be viewed and updated, and attributes of individual entries can be modified.
  • The currently active Wi-Fi network, if any. Connectivity can be established or torn down, and dynamic information about the state of the network can be queried.
  • Results of access point scans, containing enough information to make decisions about what access point to connect to.
  • It defines the names of various Intent actions that are broadcast upon any sort of change in Wi-Fi state. 

向服务器发送消息:

socket = new Socket("192.168.1.211",30000);
//向服务器端发送消息
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);        
out.println(message);

其中message为获取的AP信息

测试收到的信息格式为:

SSID: ICIS_LAB, BSSID: 1c:af:f7:9a:65:e4, capabilities: [WPA-PSK-TKIP+CCMP], level: -80, frequency: 2437


Android与PC间WiFi环境下Socket通信毕业设计实战 本文还有配套的精品资源,点击获取 简介:本项目演示了如何在Android平台上通过WiFi网络使用Socket编程实现手机与电脑之间的双向通信。介绍了创建服务器端和客户端、数据传输、异常处理、Android网络权限和注意事项,以及毕业设计中必要的理论分析和性能优化策略。这一技术对于开发远程控制、文件传输等功能非常有用。 1. Socket通信基础 Socket通... 阅读详情

相关推荐

微信小店推客分销系统源码获取与自研开发全攻略(2025年最新版)

源码选择建议快速试错:选用开源项目(如启航系统),3天可上线基础功能长期布局:购买商业源码授权,重点定制分佣规则与UI交互完全自研:适合年GMV过亿的大型企业,需前置投入风控与合规设计行动清单注册微信开放平台账号,完成视频号机构认证下载开源项目代码,部署本地测试环境联系三家源码供应商,获取合规性审计报告设计三级分佣比例表,通过法律顾问合规审查通过以上路径,可高效构建合规、稳定、高转化的微信小店推客分销系统,抢占2025年视频号电商红利。

2401_85184777的博客 1283

unity android服务器端,【深圳Unity3D培训】 Android客户端与PC服务器实现Socket通信

【深圳Unity3D培训】 Android客户端与PC服务器实现Socket通信Android终端连续扫描AP信息并发送给服务器端的完成。起首基于TCP协定在Android终端和PC两头之间构成收集虚构链路。应用ServerSocket创立TCP服务器端,而后在Android客户端应用Socket的结构器来衔接服务器。此中Android终端经由过程WIFI衔接和PC处于统一局域网。1. PC服务器...

weixin_42400074的博客 472

kernel: TCP: out of memory -- consider tuning tcp_mem 问题处理记录

参数名 说明 net.ipv4.tcp_max_tw_buckets = 6000 系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值将立刻被清楚并输出警告信息。默认值为180000。对于squid来说效果不是很大,但可以控制TIME_WAIT套接字最大值,避免squid服务器被拖死。 net.ipv4.tcp_rmem = 4096 87380 4194304 接收窗口的最大大小...

weixin_46691674的博客 6893

Android手机和电脑在同一网络下,手机运行Unity打包的WebGL

打开手机浏览器,保证手机和电脑在同一网络下,输入:电脑ip+:8080/(webapps中放入的文件文件名),我显示的是文件名叫22的文件。添加用户变量,变量名:JAVA_HOME,变量值:刚刚安装JDK的文件夹路径,我是安装在D盘的JDK目录下。2.安装好tomcat后打开webapps目录,将unity打包好的webGL文件放入webapps中。添加系统变量,右键此电脑点击属性,点击高级系统设置,点击高级,点击环境变量。选择适合自己电脑的进行安装,安装在自己知道的目录下。1.下载并安装好tomcat。

博客 1262

M1/M2 Mac用户看过来:不装VirtualBox,用PD虚拟机也能跑ENSP的保姆级教程

本文为M1/M2 Mac用户提供了一份不依赖VirtualBox,使用Parallels Desktop虚拟机运行ENSP的详细指南。通过ARM架构的Win10镜像选择、组件替代方案和网络配置优化,实现ENSP核心功能的高效运行,特别适合网络工程师在苹果芯片设备上进行网络模拟。

weixin_28683065的博客 411

python音频信号分析

声音以具有诸如频率、带宽、分贝等参数的音频信号的形式表示,典型的音频信号可以表示为幅度和时间的函数

MAY的博客 2785

用Unity打包Android程序并与PC端通过USB进行Socket通信(上)

用Unity打包Android程序并与PC端通过USB进行Socket通信 前段时间,有个使用Unity打包做的Android项目,要求是:通信不能使用WIFI,电脑通过USB与手机想连接,进行通信。可能我搜索的关键字不对,搜了好久才找到一些,后来通过搜索Android相关的,才搜到一些,这里写一些作为纪录。 这篇主要将PC和Android程序通过ADB 手动配置连接,讲的稍微详细点,可能会比较啰嗦。 一、下载ADB工具 这里使用google android 开发中的SDK里面的与Android交互的工具A

fangshiwenxue的博客 5265

DeepSeek Harness“一切皆插件”核心机制详解

DeepSeek Harness 的“一切皆插件”核心 = Cordis 微内核 + 服务化能力接口 + 声明式依赖注入 + 类型化事件 + 可逆副作用 + 配置层 Profile/Bundle/Patch 组合。它的工程收益是:把模型、工具、循环、存储、UI 等所有 Agent 能力都变成“可从配置替换、可干净装卸”的单元,而不是写死在框架里。

软件行业技术文化交流。 600

android客户端与pc服务器实现socket通信(wifi),Android客户端与PC服务器实现Socket通信(wifi)...

Android客户端与PC服务器实现Socket通信(wifi)Android客户端与PC服务器实现Socket通信(wifi)本文介绍Android终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通...

weixin_35760849的博客 853

基于深度学习YOLOv5的草莓成熟度检测系统详解(深度学习模型+UI界面+Python代码+训练数据集)

数据采集与预处理模块:负责收集草莓图像,并进行数据增强和标注。深度学习模型训练模块:使用YOLOv5模型进行草莓成熟度检测模型的训练。模型推理模块:加载训练好的模型,对输入图像或视频进行草莓成熟度检测。UI界面模块:提供用户交互界面,方便用户上传图像或视频进行成熟度检测。本文详细介绍了基于YOLOv5的草莓成熟度检测系统的构建过程,包括数据集的构建、模型的训练与推理、以及UI界面的设计。通过本文的指导,读者可以快速搭建一个高效的草莓成熟度检测系统,并应用于实际场景中。

斌擎科技 525

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2969

unity3d Android客户端与PC服务器实现Socket通信(wifi)

本文介绍Android终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通过WIFI连接和PC处于同一局域网。 1. PC服务器启用ServerSocket 两个通信实体在建立虚拟链路之前,

chenluwolf的专栏 2027

Qt C++ 电子海图与作战叠加(Overlay)系统

lab_pos->setText(QString("坐标: X%1 Y%2").arg(p.x(),0,'f',0).arg(p.y(),0,'f',0));lab_distance->setText(QString("距离: %1 海里").arg(dist,0,'f',1));lab_bearing->setText(QString("方位: %1°").arg(bear,0,'f',1));// 绘制S-57海图基底。scene->addText("封锁线").setPos(450,180);

寒寒豆豆软件公司的博客 496

unity android服务器端,[转载收藏]unity3d Android客户端与PC服务器实现Socket通信(wifi)...

本文介绍Android终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通过WIFI连接和PC处于同一局域网。1. PC服务器启用ServerSocket两个通信实体在建立虚拟链路之前,需要有一方先准备...

weixin_36482579的博客 446

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

廖雪峰Python教程[完整版]

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

Android客户端与PC服务器实现Socket通信

Android终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通过WIFI连接和PC处于同一局域网。 1. PC服务器启用ServerSocket 两个通信实体在建立虚拟链路之前,需要有一方先准备

unity3d学习者 2831

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

qt服务器端获取客户端ip_unity3d Android客户端与PC服务器实现Socket通信

Android客户端与PC服务器实现Socket通信 https://shop426839697.taobao.com/category-1505275330.htm?spm=a1z10.5-c-s.w4010-22331014617.32.28a4792882jgip&search=y&parentCatId=1503850742&parentCatName=%D0%D0...

weixin_39739404的博客 599

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: Android 怎么获取手机端的ip地址
下一篇: Eclipse下的Grails开发环境搭建详解
Jymot
博客等级 码龄14年 6粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值