测试平台:三星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网络通信相关推荐

  1. android ubuntu网络,Android手机利用USB共享网络通过Ubuntu连接网络

    注意,是手机利用PC网络连网,而不是PC利用手机网络连网. 前提: 1.Ubuntu正常连接网络 2.手机已root 3.手机上安装了busybox 步骤: 1.设置Ubuntu上的IP转发 查看&q ...

  2. 电脑通过usb共享网络给手机上网

    背景:手机无流量,电脑有网,想通过电脑共享网络给手机,在网络找了好几篇教程,但不够详细,或者就是手机USB共享网络给电脑的文章. 其他:通过该方法,手机流量全部走电脑宽带,甚至手机开飞行模式也可正常浏 ...

  3. android 热点 共享网络,Android手机如何共享Win10笔记本网络

    想象这个场景.你在办公室,或者说你的电脑上有网络连接的酒店房间.速度非常好.你有你的手机和室内,蜂窝接收留下了很多不足之处.办公室/餐厅的Wi-Fi距离几个房间,因此信号强度几乎不存在.你只能在你的电 ...

  4. 如何打开usb计算机连接网络设置,usb共享网络怎么用

    usb共享网络不知道大家了解多少,简单来说,usb共享网络这个功能就是为那些无法用wifi上网的朋友而开发的一个功能,这个功能目前可以在搭载安卓系统的手机上实现,实用价值还是非常高的.那么usb共享网 ...

  5. Android12系统上支持Android手机的usb网络共享

    Android系统需要支持Android手机通过usb共享过来的网络需要修改以下代码 1.修改内核,添加这几项内核驱动,kernel驱动默认有源码,我们只需配置上就行 +CONFIG_USB_USBN ...

  6. Android系统添加USB共享网络

    文章目录 一.代码修改: 1.内核添加RNDIS的支持 2.init.rc中增加两个针对usb0的配置服务 3.frameworks中修改配置 二.调试 测试平台:MT2712,Android9.0, ...

  7. Android设备通过USB共享网络给OpenWrt路由器

    1️⃣前言 如果随身WiFi自带的热点不稳定的话,可以考虑插到有USB口的OpenWrt路由器上,减少随身WiFi的负荷,使网络更为稳定. 但有的路由器虽然有USB口,也是OpenWrt系统,连接设备 ...

  8. Linux使用Android的USB共享网络

    1.Android手机设置: 打开"设置"-"其他无线连接"-"USB共享网络",点击打开. 2.Linux系统设置: 通过ifconfig ...

  9. Centos7命令行连接wifi网络,手机usb共享网络

    Centos7命令行连接wifi网络,手机usb共享网络 无线网卡可用的情况下,查看网卡 激活 查看一下网卡状态 扫描可用wifi 连接指定wifi 获取ip 查看ip 使用以上方式连接手机热点有ip ...

  10. windows通过安卓手机的【usb共享网络】上网突然无法上网的解决

    windows(win7)通过安卓手机的[usb共享网络]上网突然无法上网的解决 心血来潮,写了这篇文章,在此记录一下. 环境: 安卓10 win7 排查问题过程: 关于这个问题,我上网搜了一圈也没搜 ...

最新文章

  1. ubuntu和windows系统双系统的开机选项界面有很多无关选项
  2. maven集成tomcat进行web应用测试
  3. java 虚类private 继承_Java经典面试36题和答案
  4. java如何阻塞和同步_同步与异步,阻塞与非阻塞
  5. Mongodb笔记(三)user aggregate mapReduce
  6. Sharepoint 自定义搜索
  7. CodeSmith使用存档
  8. vim编辑器使用详解
  9. nodejs下载安装和环境搭建,以及nodejs各个版本如何绿色下载
  10. 投票管理系统的设计与实现(项目实现)
  11. 【Leetcode】| Largest Number
  12. 书写台灯哪种比较适合儿童?盘点护眼的儿童读写台灯推荐
  13. 图片情感研究现状与思考
  14. nmap的网络拓扑实现
  15. select option
  16. dorado 刷新_记录新建dorado项目更新规则中报错
  17. TensorFlow系列专题(一):机器学习基础
  18. 《图论及其应用》学习笔记(Euler图与Hamilton图)
  19. 使用john 1.9 破解centos7密码
  20. 阿里巴巴2020年研发实习生在线笔试题目

热门文章

  1. qemu-kvm部署虚拟机
  2. Laravel Breadcrumbs 自动面包屑导航
  3. Repeater在无数据记录时显示“无相关记录...”
  4. LSI系新军搅局,PCIe固态盘混战?
  5. 天正电气t20电气设定在哪_天正电气CAD布置烟感火灾探测器步骤教程
  6. php-cgi 68%,php cgi 进程占用太多怎么办
  7. 存储1m图像错误_【1m 讲堂】“跨专业挑战空调施工常见错误,你敢来参加吗?”...
  8. python异常值检测_python – 使用RPCA的异常值
  9. java 静态类的实现_关于java:在类中实现静态方法
  10. 计算机系统结构教程卷子,计算机系统结构试卷试题.docx