USB共享网络:android手机通过USB与Ubuntu进行socket网络通信
测试平台:三星S4,内核3.4.5
Ubuntu版本:14.04
===========================
1. 打开手机移动热点中USB网络共享,并将手机通过USB连接到PC
2. Ubuntu下使用命令ifconfig
2.1 inet addr:192.168.42.193就是我们客户端程序connect使用的地址:
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr("192.168.42.193");
address.sin_port = htons(9734);
len = sizeof(address);
result = connect(sockfd, (struct sockaddr *)&address, len);
2.2 服务器端也是使用192.168.42.193这个ip地址进行bind,调用bind()函数之后,为socket()函数创建的套接字关联一个相应地址,发送到这个地址的数据可以通过该套接字读取与使用。
server_address.sin_family = AF_INET;
server_address.sin_addr.s_addr = inet_addr("192.168.42.193");
server_address.sin_port = htons(9734);
server_len = sizeof(server_address);
bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
或者使用: server_address.sin_addr.s_addr = htonl(INADDR_ANY); 意味着可以接收本系统所安装的任何一个网卡的数据包。
3. 编写代码并编译
arm-client3.c
/* Make the necessary includes and set up the variables. */#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>int main()
{int sockfd;int len;struct sockaddr_in address;int result;char ch = 'A';/* Create a socket for the client. */sockfd = socket(AF_INET, SOCK_STREAM, 0);/* Name the socket, as agreed with the server. */address.sin_family = AF_INET;address.sin_addr.s_addr = inet_addr("192.168.42.138");address.sin_port = htons(9734);len = sizeof(address);/* Now connect our socket to the server's socket. */result = connect(sockfd, (struct sockaddr *)&address, len);if(result == -1) {perror("oops: client3");exit(1);}/* We can now read/write via sockfd. */write(sockfd, &ch, 1);read(sockfd, &ch, 1);printf("char from server = %c\n", ch);close(sockfd);exit(0);
}
server3.c
/* Make the necessary includes and set up the variables. */#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>int main()
{int server_sockfd, client_sockfd;int server_len, client_len;struct sockaddr_in server_address;struct sockaddr_in client_address;/* Remove any old socket and create an unnamed socket for the server. */server_sockfd = socket(AF_INET, SOCK_STREAM, 0);/* Name the socket. */server_address.sin_family = AF_INET;// server_address.sin_addr.s_addr = htonl(INADDR_ANY);server_address.sin_addr.s_addr = inet_addr("192.168.42.193");server_address.sin_port = htons(9734);server_len = sizeof(server_address);bind(server_sockfd, (struct sockaddr *)&server_address, server_len);/* Create a connection queue and wait for clients. */listen(server_sockfd, 5);while(1) {char ch;printf("server waiting\n");/* Accept a connection. */client_len = sizeof(client_address);client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);/* We can now read/write to client on client_sockfd. */read(client_sockfd, &ch, 1);ch++;write(client_sockfd, &ch, 1);close(client_sockfd);}
}
服务器编译:gcc -o server3 server3.c
客户端编译:arm-none-linux-gnueabi-gcc -static -o arm-client3 arm-client3.c
4. 运行
先将arm-client3 push到手机:adb push ./arm-client3 /sdcard/
Ubuntu下: ./server3
adb shell下: ./arm-client3
USB共享网络:android手机通过USB与Ubuntu进行socket网络通信相关推荐
- android ubuntu网络,Android手机利用USB共享网络通过Ubuntu连接网络
注意,是手机利用PC网络连网,而不是PC利用手机网络连网. 前提: 1.Ubuntu正常连接网络 2.手机已root 3.手机上安装了busybox 步骤: 1.设置Ubuntu上的IP转发 查看&q ...
- 电脑通过usb共享网络给手机上网
背景:手机无流量,电脑有网,想通过电脑共享网络给手机,在网络找了好几篇教程,但不够详细,或者就是手机USB共享网络给电脑的文章. 其他:通过该方法,手机流量全部走电脑宽带,甚至手机开飞行模式也可正常浏 ...
- android 热点 共享网络,Android手机如何共享Win10笔记本网络
想象这个场景.你在办公室,或者说你的电脑上有网络连接的酒店房间.速度非常好.你有你的手机和室内,蜂窝接收留下了很多不足之处.办公室/餐厅的Wi-Fi距离几个房间,因此信号强度几乎不存在.你只能在你的电 ...
- 如何打开usb计算机连接网络设置,usb共享网络怎么用
usb共享网络不知道大家了解多少,简单来说,usb共享网络这个功能就是为那些无法用wifi上网的朋友而开发的一个功能,这个功能目前可以在搭载安卓系统的手机上实现,实用价值还是非常高的.那么usb共享网 ...
- Android12系统上支持Android手机的usb网络共享
Android系统需要支持Android手机通过usb共享过来的网络需要修改以下代码 1.修改内核,添加这几项内核驱动,kernel驱动默认有源码,我们只需配置上就行 +CONFIG_USB_USBN ...
- Android系统添加USB共享网络
文章目录 一.代码修改: 1.内核添加RNDIS的支持 2.init.rc中增加两个针对usb0的配置服务 3.frameworks中修改配置 二.调试 测试平台:MT2712,Android9.0, ...
- Android设备通过USB共享网络给OpenWrt路由器
1️⃣前言 如果随身WiFi自带的热点不稳定的话,可以考虑插到有USB口的OpenWrt路由器上,减少随身WiFi的负荷,使网络更为稳定. 但有的路由器虽然有USB口,也是OpenWrt系统,连接设备 ...
- Linux使用Android的USB共享网络
1.Android手机设置: 打开"设置"-"其他无线连接"-"USB共享网络",点击打开. 2.Linux系统设置: 通过ifconfig ...
- Centos7命令行连接wifi网络,手机usb共享网络
Centos7命令行连接wifi网络,手机usb共享网络 无线网卡可用的情况下,查看网卡 激活 查看一下网卡状态 扫描可用wifi 连接指定wifi 获取ip 查看ip 使用以上方式连接手机热点有ip ...
- windows通过安卓手机的【usb共享网络】上网突然无法上网的解决
windows(win7)通过安卓手机的[usb共享网络]上网突然无法上网的解决 心血来潮,写了这篇文章,在此记录一下. 环境: 安卓10 win7 排查问题过程: 关于这个问题,我上网搜了一圈也没搜 ...
最新文章
- ubuntu和windows系统双系统的开机选项界面有很多无关选项
- maven集成tomcat进行web应用测试
- java 虚类private 继承_Java经典面试36题和答案
- java如何阻塞和同步_同步与异步,阻塞与非阻塞
- Mongodb笔记(三)user aggregate mapReduce
- Sharepoint 自定义搜索
- CodeSmith使用存档
- vim编辑器使用详解
- nodejs下载安装和环境搭建,以及nodejs各个版本如何绿色下载
- 投票管理系统的设计与实现(项目实现)
- 【Leetcode】| Largest Number
- 书写台灯哪种比较适合儿童?盘点护眼的儿童读写台灯推荐
- 图片情感研究现状与思考
- nmap的网络拓扑实现
- select option
- dorado 刷新_记录新建dorado项目更新规则中报错
- TensorFlow系列专题(一):机器学习基础
- 《图论及其应用》学习笔记(Euler图与Hamilton图)
- 使用john 1.9 破解centos7密码
- 阿里巴巴2020年研发实习生在线笔试题目
热门文章
- qemu-kvm部署虚拟机
- Laravel Breadcrumbs 自动面包屑导航
- Repeater在无数据记录时显示“无相关记录...”
- LSI系新军搅局,PCIe固态盘混战?
- 天正电气t20电气设定在哪_天正电气CAD布置烟感火灾探测器步骤教程
- php-cgi 68%,php cgi 进程占用太多怎么办
- 存储1m图像错误_【1m 讲堂】“跨专业挑战空调施工常见错误,你敢来参加吗?”...
- python异常值检测_python – 使用RPCA的异常值
- java 静态类的实现_关于java:在类中实现静态方法
- 计算机系统结构教程卷子,计算机系统结构试卷试题.docx