自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fulinux的博客

Linux 、Android、Yocto 、BSP嵌入式开发工程师

  • 博客(405)
  • 资源 (41)
  • 论坛 (6)
  • 收藏
  • 关注

原创 yocto-第45篇-bb文件中函数实操演示(3)继承自己的class

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录类函数的灵活继承我应该一开始创建一个functions的recipe来专门讲这一系列的内容就好了。我从本篇开始也不迟。poky]$ cd meta-mylayer/meta-mylayer]$ cp recipes-example/ recipes-myfunctions -rf #赋值一份,改.

2021-02-23 20:19:20 2571 9

原创 yocto-第1篇-开始qemux86-64虚拟机的构建

目标理想:我的理想是通过一条命令生成对应开发板的所有镜像文件,开机后的系统跑着Qt的wayland桌面管理系统,实现一个类似手机桌面环境的系统,但是精简、高效率、不吃资源、方便应用层实现多个Qt程序来回切换使用桌面等等。。。这是我学习yocto和wayland/QtWayland的目的参考这个操作:https://www.yoctoproject.org/docs/3.1.2/brief-yoctoprojectqs/brief-yoctoprojectqs.html构建一个特殊的yocto po

2020-10-03 16:50:52 1008 21

原创 OpenWrt的luci web管理器添加新菜单

OpenWrt的luci web管理器添加新菜单本篇博客主要描述luci添加菜单的两个实例,即CBI和View(Template):添加新元素到luci中去添加新的顶级选项卡标签(主菜单)添加cbi标签的代码添加cbi配置文件添加view标签代码关键字lucicbiviewtemplatefulinux添加新元素到luci中去这里将向大家展示如何在luci中添加新标签的方法

2015-09-28 15:51:14 11985 1

原创 u-boot-2014.10移植第29天----nand flash的SPL启动(一)

前面在移植nand flash启动时做了很多探索性的工作,但是后来发现在relocate.S文件中调用的函数中有调用大部分的库函数,牵扯到的文件较多,很难将它们一一包含到前面4K空间中去。正在想其他方法时,突然意识到SPL功能。我初步了解了一下SPL的功能,简而言之是一个将u-boot从nand flash拷贝到SDRAM中并运行的一个程序(u-boot-spl.bin),是u-boot在nand

2015-03-29 16:27:24 6536

原创 基于ARM、linux的MF RC522射频读卡器

摘要:本设计将ARM、linux的嵌入式技术与RFID技术相结合,对于实现移动支付终端的低功耗、便携式和网络化具有特别的意义。首先是采用MFRC522芯片设计与制作读写器,实现对Mifare卡的读写操作;其次是使用S3C2440A芯片和linux搭建嵌入式系统,作为各模块沟通和处理的枢纽;最后是运用开发软件编写服务端和MFC、Qt界面客户端的程序,使得各模块通过SPI和wifi通信的方式协同工作。结合实物和软件的设计、制作与调试,实现了一个性能稳定和使用灵活的可移动终端系统。

2014-11-07 20:49:38 5374 4

原创 libcanbus官方主页

libcanbuscanbus(CAN BUS V2.0 B)扩展格式库项目简析注: 本文假设你已经有linux开发环境请确保你使用本库时是tag版本。该库遵循的协议是SAE J1939-21-2006。target=libcanbus-1.0本项目采用 GPL 授权协议,欢迎大家在这个基础上进行改进,并与大家分享,为开源事业贡献一点点力量。源码下载地址**https://git.oschina

2014-10-09 21:17:24 3153

原创 CAN bus的移植

CAN bus的移植 一、首先要阅读相关的文档了解can bus协议; 二、驱动移植,内核中一般是自带相关的can驱动,如果没有可以自行加入; 三、测试,首先下载can bus套件:$git clone https://git.gitorious.org/linux-can/can-utils.gitfulinux ~$cd can-utilsfulinux ~$ls**** candump.c

2014-07-23 11:10:34 6483 1

原创 libmodbus的移植

libmodbus的移植的过程中,要注意几点:第一,在交叉编译器是最好加上--prefix参数,叫相关的库直接集中起来,方便拷贝到开发板相应的目录中去;嵌入式开发板:./configure --build=i686 --host=arm-none-linux-gnueabi --prefix=/root/libmodbus-3.1.1/install/ && make installPC上运行 :./configure && make install

2014-07-10 17:27:02 11150 6

原创 C51模拟PS2键盘(一)

协议介绍:  一. PS2接口   1> 现在的Ps2接口普遍采用6引脚连接器.主设备采用female接口,从设备采用male接口     2> 6引脚连接器引脚设置:   1> 引脚1 -> 数据线   2> 引脚2 -> 未定义,保留   3> 引脚3 -> 电源地   4> 引脚4 -> 电源<+5V>   5> 引脚5 -> 时钟线   6> 引脚6 -> 未定义,保留     3> Ps2的两根信号线为"集电极开路"结构,必须要有上拉电阻.并且一般情况下,在主设备端上拉.

2013-11-10 20:35:56 5091

原创 ARM上的linux如何实现无线网卡的冷插拔和热插拔

ARM上的linux如何实现无线网卡的冷插拔和热插拔fulinux凌云实验室1.冷插拔如果在系统上电之前就将RT2070/RT3070芯片的无线网卡(以下简称wlan)插上,即冷插拔。我们通过分析系统启动流程过程中的运行的脚本,将启动wlan的脚本加入其中,就可以实现自动运行wlan.。系统启动后的第一个进程/sbin/init。init进程最主要的功能就是准备软件执行

2013-07-25 12:03:17 7091

原创 S3C2440实现wifi、3G上网和迷你无线路由的制作(一)

S3C2440实现wifi、3G上网和迷你无线路由的制作fulinux凌云实验室本文将通过ARM、linux平台,借助RT2070/RT3070芯片的无线模块(或使用RT2070/RT3070芯片的USB无线上网卡)、3G无线上网卡,实现无线上网、通过ADSL和3G的迷你无线路由器的制作。wifi上网首先是利用s3c2440开发板和RT2070/RT3070芯片的

2013-07-24 13:07:45 6563

原创 ARM+llinux系统移植3G拨号上网收发短信(一)

以下向大家演示如何在2440开发板的linux系统中实现3G拨号上网的功能。1向linux内核中添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,重新编译下载内核。2对ppp-2.4.4源代码进行交叉编译。将拨号上网所需的两个应用程序pppd和chat拷贝到开发板/usr/sbin文件夹下,将改好的脚本文件wcdma、wcdma-chat-connect、wcdma-chat-disconnect存放在/etc/ppp/peers目录下。将含有域名解析服务器地址的文件resolv

2013-07-14 17:04:23 13615

原创 Linux 设备驱动篇之I2c设备驱动

Linux设备驱动篇之I2c设备驱动fulinux一、I2C驱动体系虽然I2C硬件体系结构和协议都很容易理解,但是LinuxI2C驱动体系结构却有相当的复杂度,它主要由3部分组成,即I2C设备驱动、I2C总线驱动和I2C核心。1.I2C核心I2C核心是I2c总线和I2c设备驱动的中间枢纽,它以通用的、与平台无关的接口实现了I2C中设备与适配器的沟通,提供了I2C总线驱动和设

2013-06-02 20:24:59 14518 17

原创 多种嵌入式文件系统移植集合

1. 嵌入式存储系统1.1. 计算机组成原理从冯.诺依曼的存储程序工作原理及计算机的组成来说,计算机由运算器、控制器、存储器和输入/输出设备五大部件组成。其中运算器和控制器统称为中央处理器(CPU),而存储系统分成内部存储器(内存)和外部存储器(外存)。输入/输出设备并非计算机所必需的,如果一个设备具有CPU,内存和外存,我们就可以说它是一台计算机。在很多嵌入式设备上,都没有输入/输出设备

2013-06-01 21:23:34 14063 2

原创 uboot中timer定时器的设置

uboot中timer定时器的设置,uboot汇编部分没有对timer初始化,而是在C中。在C入口函数void start_armboot(void)中,首先是通过如下代码方式调用:typedef int (init_fnc_t) (void);init_fnc_t *init_sequence[] = { a/a/l/board.c

2013-03-20 13:45:12 8007 1

原创 yocto-第54篇-Qt5的添加

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录为了满足读者盆友想看yocto如何添加qt5的需求,今天就开始尝试添加meta-qt5先下载meta-qt5的layerhttps://github.com/将自己的项目还原成原始的状态,使用qemux86-64虚拟机中添加qt5poky]$ vim build/conf/local.con.

2021-05-02 20:07:03 45

原创 物理学胡思乱想之以太和各种场的关系猜想

目录光速是否存在介质?以太场和电磁场的关系以太场和光速的问题以太场和重力关系错误的相对论质量大的天体会导致空间扭曲?穿越有理论基础吗质能方程没有意义参考:物理学胡思乱想之库仑力和万有引力定律胡乱推导参考:光速不变问题新思考(光速不满足速度叠加原理)光速是否存在介质?以太,这个是个外来的英译词,我这里不涉及什么神秘色彩或者暗物质什么,仅取以太这个概念来代指光传播的介质(后话:我认为电磁波是依赖介质的)。传统的观点认为以太是看不见的存在,充满宇宙,所有的天体都在以太之中。如果说宇宙是池塘,那么以太就像水

2021-05-01 15:40:48 36

原创 Yocto开发讲解系列 - 总目录

Yocto开发讲解系列总纲Yocto开发专栏前言Yocto开发专栏前言欢迎读者盆友光临fulinux的《Yocto开发讲解系列》专栏,小编我有10年软件开发经验,最早接触Yocto是在做Freescale的imx6q平台的时候,那个时候也是瞎折腾,压根就搞不清楚yocto里的项目代码怎么改,怎么添加自己的项目,没有深入去研究。也仅仅是“挪用”yocto编译出来的一些库和程序、文件系统或者Toolchain SDK来满足自己的项目需求,甚至那个时候还觉得还是自己的项目构建系统比较好用,觉得Yocto太复杂

2021-04-28 20:26:14 212 6

原创 yocto-第53篇-实战举例之制作bootloader

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录开始制作lk标题准备工作编写lk的bb文件修改msm8909.conf文件bb.utils.contains函数multiple definition of `__stack_chk_guard'first defined here问题开始制作lk今天开始制作bootloader/lk。标题准备.

2021-04-22 19:59:49 47

原创 Qualcomm 高通Audio Bringup Guide

本文讲述高通audio相关内容,从开始入门到实操调试的指导性文档,对于刚刚接触高通音频的开发人员有很大的帮助,同时结合自己操作内容和大家一起分享,文末还有一些扩展阅读。

2021-04-14 17:41:59 78

原创 Qualcomm 高通平台回声消除和噪音抑制的调试

参考:cl93-v1638-2_c_application_note__enhanced_echo_canceller_and_noise_suppression_tuning2. Acoustic Echo Cancellation声学回声消除The presence of an acoustic echo in a mobile phone and the delay inherent in a cellular communications system necessitates an EC t

2021-04-14 17:37:58 46

原创 yocto-第52篇-实战举例之制作system/rootfs文件系统

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录标题简述目的制作迷你版本的system.img出错了没有进入文系统编译警告问题如何修改进入系统前的发行信息标题简述目的本篇主要是讲如何制作system镜像文件或者说rootfs根文件系统镜像。再讲BootLoader之前,先讲下如何制作system.img镜像文件,其实很简单,system.im.

2021-04-12 20:19:35 57

原创 yocto-第51篇-实战举例之制作boot.img

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录简单回顾下上传meta到gitee制作boot.img添加mkbootimg-native的recipe简单回顾下继续,上一篇我们完成了zImage的编译,但是我们需要将其制作成类似安卓那样的boot.img。上传meta到gitee在首先我将meta-mybsp上传到gitee上面供大家参.

2021-04-01 20:16:49 97 1

原创 yocto-第50篇-实战举例之添加linux内核

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录啰嗦几句msm启动流程小述准备工作创建meta layer创建machine和配置添加kernel的recipe啰嗦几句今天开始记录我在一个干净的yocto项目中添加高通的msm8909的过程。在http://git.yoctoproject.org/中有这样的一个meta-qcom/,这个是高.

2021-03-13 17:11:59 180 2

原创 yocto-第49篇-编译问题汇总及解决方案

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录问题1:locale-base-en-us问题1:locale-base-en-us或者问题是:No package locale-base-en-us available.ERROR: core-image-sato-1.0-r0 do_rootfs: Unable to install p.

2021-03-11 19:03:19 187 6

原创 yocto-第48篇-meta目录中conf里的配置项小札

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录DISTRO和DISTRO_VERSION变量VARIANT变量ARM_INSTRUCTION_SET变量FULL_OPTIMIZATION变量ENABLE_BINARY_LOCALE_GENERATION变量USE_LDCONFIG变量PREFERRED_VERSIONDISTRO和DISTRO_.

2021-03-08 20:25:05 106 2

原创 yocto-第47篇-bb文件中如何获取源码或指定本地目录

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录event事件event事件这里我们提这么一个需求,就是当某个recipe或者class中的函数或者任务触发时,可以触发我们自定义的一个槽函数,来想要执行我们自己定义的动作,比如某个recipe编译失败的时候打印某个信息,或者更高级地向我们发个邮件说失败了,你来处理下。这就是类似一个信号和槽的关系.

2021-03-06 16:04:01 427 2

原创 庞杂技术要点汇总文档分享(1)

庞杂技术要点汇总文档分享,包含linux,yocto,android,thermal,高通平台,selinux,AT,编程等等多种知识内容,全文共117页,有MHTML和PDF两种文档,精心排版

2021-03-05 23:23:46 1065 7

原创 Linux driver读书笔记(7) - linux内核设备模型(翻译)

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录Linux内核设备模型概述下游的访问对上的用户接口Linux内核设备模型参考:Documentation/driver-api/driver-model/overview.rst概述Linux kernel driver程序模型是以前在内核中使用的所有不同驱动程序模型的统一。它旨在通过将一组数.

2021-02-27 15:08:07 66 4

原创 yocto-第46篇-如何添加自己的函数作为recipe的任务

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录怎么将自己的函数升级为任务什么是任务如何指定任务的执行顺序方框内nostamp等关键词开篇我先提一嘴,即便一看就明白的知识,不自己实践下,都不是你的知识,只是过客。怎么将自己的函数升级为任务addtask只能在recipe或者classes中使用,可以将yocto-第43篇-bb文件中函数实操演.

2021-02-24 20:52:31 129 1

原创 yocto-第44篇-bb文件中函数实操演示(2)

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录Bitbake风格的Python函数与Python函数的比较匿名Python函数看了上面一篇的盆友会有困惑,难道我还有去学习下Python语言吗?其实不用,以后遇到上面问题,找一些bb文件,看下别人是怎么用的就可以了,没那么复杂,和c语言或shell语言很接近,无非就是一些细节上注意下。想当初我没有.

2021-02-22 20:39:44 142

原创 yocto-第43篇-bb文件中函数实操演示(1)

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录开篇简述shell函数开篇简述bitbake工具可以和其他语言一样可以使用函数来做相应的功能和任务,比如:...do_configure()do_compile()do_install()...bitbake支持的函数类型有shell函数:用shell脚本编写的函数,直接作为函数.

2021-02-19 20:52:51 154

原创 yocto-第42篇-bb文件中的几个关键词require DEPENDS inherit

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录简要说明inherit关键词require关键词DEPENDS关键词简要说明我们经常在一些bb文件中看到require、DEPENDS、inherit等关键词,不知道你有没有总结出他们分别如何使用呢?先看下面的例子:在meta/recipes-kernel/linux/linux-yocto..

2021-02-19 19:55:33 418

原创 物理学胡思乱想之库仑力和万有引力定律胡乱推导

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录引言电场强度从客体电荷q的受力角度看场强从主体p电荷电场P处猜想场强P点场强E与p电量成正比P点场强E与距离p原点距离r的关系单位电荷在电场中的受到力两个电荷相互作用的力万有引力定律推导引言这个是万有引力定律公式:F=Gm1m2r2F =G\frac{m1m2}{r^2}F=Gr2m1m2​.

2021-01-30 16:48:15 2295 3

原创 yocto-第41篇-beaglebone-yocto.conf配置分析之kernel

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录beaglebone-yocto.conf配置分析之kernelDEFAULTTUNE变量require和include区别和功能变量带下划线什么意思?KERNEL_IMAGETYPE变量KERNEL_DEVICETREE变量beaglebone-yocto.conf配置分析之kernel继续分析.

2021-01-25 20:39:18 116

原创 yocto-第40篇-beaglebone-yocto.conf配置分析之u-boot

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录u-boot相关EXTRA_IMAGEDEPENDS 变量u-boot-common.incu-boot.incUBOOT_MACHINE变量继续分析meta-yocto-bsp/conf/machine/beaglebone-yocto.conf配置文件的作用Beagleboneblack在启动.

2021-01-16 20:20:38 232 2

原创 yocto-第39篇-beaglebone-yocto.conf配置分析之MACHINE_EXTRA_RRECOMMENDS变量

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录MACHINE_EXTRA_RRECOMMENDS变量继续分析meta-yocto-bsp/conf/machine/beaglebone-yocto.conf配置文件的作用MACHINE_EXTRA_RRECOMMENDS变量beaglebone-yocto.conf中有这样一行:MACHI.

2021-01-16 18:55:36 160

原创 yocto-第38篇-beaglebone-yocto.conf配置分析之PREFERRED_PROVIDER变量

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录beaglebone-yocto.confPREFERRED_PROVIDER我是从s3c2440开发板学习linux嵌入式的,所以对2440还是很有感情的,所以我看了一下目前最新版本的s3c2440的u-boot。不过很遗憾,u-boot项目在2016年就将其删除了~今天我们就结合beagle.

2021-01-12 20:03:16 171 4

原创 C程序malloc后不memset的都不是好程序员

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录C程序容易出现segment faultC程序容易出现segment fault追求完美的程序员,应当在调用malloc()分配内存后,应当在不用的时候释放掉,不能有内存泄漏。但是在一些复杂数据结构,比如链表,或者嵌套逻辑结构中使用malloc()和free()两个函数时,极容易出现段错误。如.

2021-01-12 16:54:17 129

原创 yocto-第37篇-编译可以在beaglebone开发板上运行的镜像

By: fulinuxE-mail: fulinux@sina.comBlog: https://blog.csdn.net/fulinus喜欢的盆友欢迎点赞和订阅!你的喜欢就是我写作的动力!目录引言meta-yocto-bsp目录做什么的创建一个新目录修改local.conf模板创建build目录修改downloads路径开始编译引言说实话,我也没有beaglebone开发板在手上,为什么要编译这个呢?我觉得吧,这个是一个arm架构的、能在实际板子上运行的、yocto官方官方用来验证y.

2021-01-09 19:32:09 154

fulinux庞杂技术要点汇总文档分享(1).zip

庞杂技术要点汇总文档分享,包含linux,yocto,android,thermal,高通平台,selinux,AT,编程等等多种知识内容。

2021-03-06

简易电阻电容电感测试仪程序

简易电阻电容电感测试仪程序

2012-05-25

简易电阻电容电感测试仪

简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪简易电阻电容电感测试仪 电阻电容电感测试仪 测试仪

2012-05-25

蹭网工具(有线)

蹭网工具 有线 免费上网

2012-01-05

msp430产生SPWM波程序

msp430产生SPWM波程序

2012-05-25

git服务搭建全过程

git服务搭建全过程

2020-11-11

telnet_clinet.zip

客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 个地方获取文件的时候,是我们的ftp程序主动同外面进行通信(获取文件), 所以这个地方我们的ftp程序就是客户端程序。 服务端 和客户端相对应的程序即为服务端程序。被动的等待外面的程序来和自己通讯的程序称为服务端程序。 比如上面的文件获取中,另外一个地方的程序就是服务端,我们从服务端获取文件过来。 [代码] [C/C++]代码 /******* 服务器程序 (server.c) ************/ #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <string.h> #include <unistd.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <sys/types.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { int sockfd,new_fd; struct sockaddr_in server_addr; struct sockaddr_in client_addr; int sin_size,portnumber; char hello[]="Hello! Are You Fine?\n"; if(argc!=2) { fprintf(stderr,"Usage:%s portnumber\a\n",argv[0]); exit(1); } if((portnumber=atoi(argv[1]))<0) { fprintf(stderr,"Usage:%s portnumber\a\n",argv[0]); exit(1); } /* 服务器端开始建立socket描述符 */ if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { fprintf(stderr,"Socket error:%s\n\a",strerror(errno)); exit(1); } /* 服务器端填充 sockaddr结构 */ bzero(&server;_addr,sizeof(struct sockaddr_in)); server_addr.sin_family=AF_INET; server_addr.sin_addr.s_addr=htonl(INADDR_ANY); server_addr.sin_port=htons(portnumber); /* 捆绑sockfd描述符 */ if(bind(sockfd,(struct sockaddr *)(&server;_addr),sizeof(struct sockaddr))==-1) { fprintf(stderr,"Bind error:%s\n\a",strerror(errno)); exit(1); } /* 监听sockfd描述符 */ if(listen(sockfd,5)==-1) { fprintf(stderr,"Listen error:%s\n\a",strerror(errno)); exit(1); } while(1) { /* 服务器阻塞,直到客户程序建立连接 */ sin_size=sizeof(struct sockaddr_in); if((new_fd=accept(sockfd,(struct sockaddr *)(&client;_addr),&sin;_size))==-1) { fprintf(stderr,"Accept error:%s\n\a",strerror(errno)); exit(1); } fprintf(stderr,"Server get connection from %s\n", inet_ntoa(client_addr.sin_addr)); if(write(new_fd,hello,strlen(hello))==-1) { fprintf(stderr,"Write Error:%s\n",strerror(errno)); exit(1); } /* 这个通讯已经结束 */ close(new_fd); /* 循环下一个 */ } close(sockfd); exit(0); } [代码] [C/C++]代码 /******* 客户端程序 client.c ************/ #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <string.h> #include <unistd.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <sys/types.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { int sockfd; char buffer[1024]; struct sockaddr_in server_addr; struct hostent *host; int portnumber,nbytes; if(argc!=3) { fprintf(stderr,"Usage:%s hostname portnumber\a\n",argv[0]); exit(1); } if((host=gethostbyname(argv[1]))==NULL) { fprintf(stderr,"Gethostname error\n"); exit(1); } if((portnumber=atoi(argv[2]))<0) { fprintf(stderr,"Usage:%s hostname portnumber\a\n",argv[0]); exit(1); } /* 客户程序开始建立 sockfd描述符 */ if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) { fprintf(stderr,"Socket Error:%s\a\n",strerror(errno)); exit(1); } /* 客户程序填充服务端的资料 */ bzero(&server;_addr,sizeof(server_addr)); server_addr.sin_family=AF_INET; server_addr.sin_port=htons(portnumber); server_addr.sin_addr=*((struct in_addr *)host->h_addr); /* 客户程序发起连接请求 */ if(connect(sockfd,(struct sockaddr *)(&server;_addr),sizeof(struct sockaddr))==-1) { fprintf(stderr,"Connect Error:%s\a\n",strerror(errno)); exit(1); } /* 连接成功了 */ if((nbytes=read(sockfd,buffer,1024))==-1) { fprintf(stderr,"Read Error:%s\n",strerror(errno)); exit(1); } buffer[nbytes]='\0'; printf("I have received:%s\n",buffer); /* 结束通讯 */ close(sockfd); exit(0); } [代码] [C/C++]代码 ######### Makefile ########### all:server client server:server.c gcc $^ -o $@ client:client.c gcc $^ -o $@ 1 服务端命令./server 【1234】 , 其中123是端口可以设置为其他值。 2 客户端命令./clinet 【服务端的IP地址】【1234】,我的IP地址是192.168.1.105 端口要保持一致,即123 4。

2013-02-22

RCL测量仪程序

RCL 测量仪程序

2012-05-25

单片机LED矩阵滚动显示

单片机LED矩阵滚动显示字符

2012-02-03

LED矩阵滚动显示

LED矩阵滚动显示 单片机显示 单片机滚动显示

2012-03-18

multisim10_0注册机和安装过程及破解过程

multisim10_0太有意思了,但安装过程好复杂,也破解不了,然我千方百计花了大价钱终于从网上高昂的注册机,注册机下下来后还是不会我又找了安装和破解方法,并将它们有机的整合合订在一起,为后来者铺平道路

2012-01-06

DS1302时钟可调

DS1302时钟可调 DS1302 单片机

2012-03-18

天嵌和飞凌ARM开发板都能运行的u-boot

天嵌和飞凌ARM开发板都能运行的u-boot

2013-03-22

msp430f169的程序

宽频放大器程序5

2012-07-20

蹭网工具(有线)以及蹭网工具的破解

蹭网工具(有线)以及蹭网工具的破解

2012-05-14

msp430f169的放大器程序

msp430f169的放大器程序

2012-07-20

SPWM产生spwm波

产生spwm波产生

2012-05-25

计算小工具

计算小工具

2012-09-16

定时关机器

定时关机器

2012-01-05

u-boot-2010.09-fulinux.patch

飞凌s3c2440的patch包文件:u-boot-2010.09-fulinux.patch

2013-03-16

虚拟机vmware8

vmware8 虚拟机

2012-01-05

数据结构所有资源

数据结构所有资源

2012-01-05

大家版词典级大学英语四级47套历

大家版词典级大学英语四级47套历年真题大全[1989-2011年].

2012-01-05

按键选择DDS频率和显示程序

按键选择DDS频率和显示程序 DDS

2012-05-25

单片机计时器

单片机计时器

2012-02-12

幅值和频率计(封装版).

单片机测正弦波的幅值和频率

2012-02-29

kile注册机

我在使用kile4时,应为编译太大出现。。。Target not created;我很郁闷,在网上找,原来是没有注册,于是我在网上找kile注册机,不是版本太低不适用kile4,就是害人的,好长时间才找到这个令我心满意足的东西,。方法:在file菜单有一个license...的地方将生成的注册码草上去就行,好了你可以使用了

2011-11-17

XP主题下载

我在网上花了好长时间,遭到了一些比较好的XP主题,很漂亮,希望你们也能拥有漂亮的主题

2011-10-29

单片机正弦波测量

单片机 正弦波测量

2012-02-03

p2pover-v4

我在网上早了好长时间没有几个有效地,唯一发现这个好可以先别人的网速,很给力,对方电脑进没有察觉,特搞笑,好了上课去了

2011-11-16

信号与线性系统分析(第四版)解析

信号与线性系统分析(第四版)解析

2012-05-14

matlab注册机

matlab注册机

2012-05-25

Altium.Designer.Winter.09.SP3破解文件

Altium.Designer.Winter.09.SP3破解文件

2012-02-29

xp美化工具

xp美化工具

2012-01-05

暴力巡警删除软件

又一次中了毒,他只会播广告,站在那里一动也不动,360,金山也不行,这个可以,好东西,其他一些太烂了

2011-11-16

CC2500发射程序

CC2500发射程序 CC2500程序

2012-03-18

RCL测量仪程序26

RCL 测量仪程序

2012-05-25

数据库课件包括多套试卷

数据库课件包括多套试卷,课件很经典,试卷也多是我在网上搜的很全

2013-01-02

430的实例程序和下载工具

430 430的实例程序 430的下载工具

2012-05-25

数据结构迷宫升级版本

数据结构迷宫升级版本这是对网上一篇程序进行的升级,亮点是坐标表示更好,方向不再是数字而是英文方向单词更易于理解,希望对大家有帮助!

2012-01-05

fulinux的留言板

发表于 2020-01-02 最后回复 2020-10-10

阿里通信170的号码说是错误

发表于 2015-03-04 最后回复 2016-04-08

简历上的地区怎么改

发表于 2015-03-04 最后回复 2015-05-28

为什么更新简介时出现“昵称此昵称已经存在,无法更新!”

发表于 2015-03-04 最后回复 2015-05-28

andeq r14,r7, r0, lsl #20

发表于 2012-12-14 最后回复 2014-01-02

TACLS TWRPH0 TWRPH1的设置

发表于 2012-12-15 最后回复 2014-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除