A003 windows客戶端、Linux伺服器、Linux字符設備驅動程序 整體

2020-12-27 萬年長長青

現在編寫一個簡單是示例,展現windows客戶端、Linux伺服器、Linux字符設備驅動程序,三者作為一個整體,完成某種功能。

所要展現的功能是:Windows客戶端輸入一個出生年份,網絡傳輸給Linux伺服器,Linux伺服器又將該出生年份傳遞給Linux字符設備驅動程序內核模塊,Linux字符設備驅動程序計算出年齡,Linux伺服器讀取到該年齡值,併網絡傳輸給Windows客戶端顯示、

其一、Linux字符設備驅動程序(C語言)

Linux字符設備驅動程序,在這裡的功能很簡單,就是根據出生年份計算年齡。

1、文件名:d9.c,代碼如下:

2、Makefile文件的內容如下:

3、make生成d9.ko內核模塊文件

4、insmod d9.ko命令加載內核模塊

5、創建設備文件:mknod /dev/d9dev c 51 0

如果不是很理解,可以查看文檔1:A002 Linux 字符設備驅動開發(講解與編寫)

如果不是很理解,可以查看視頻2:18 第一部分 字符設備驅動程序框架19 第二部分 應用程式與字符設備驅動程序的數據交換(int)

其二、Linux伺服器程序(C語言)

Linux伺服器程序的源文件名:server9.c,用於接收來自客戶端的文本,並訪問字符設備驅動程序,代碼如下:

其中socket建立套接字,使用IPV4,使用TCP協議;bind是綁定伺服器IP和埠,使用本機任一一個IP位址,埠是1234,htons函數的意思是主機字節序轉成網絡字節序,short類型;listen是監聽,支持5個TCP鏈路同時存在;accept等待客戶端連接進來,返回值表示這個客戶端與伺服器之間的TCP鏈路,以後用這個值就可以對該TCP鏈路進行讀寫數據了,也就是對客戶端讀寫數據。

其中/dev/d9dev是字符設備驅動程序所對應的的設備文件,對該文件的讀寫操作,就是調用相應字符設備驅動程序的讀和寫函數。

編譯並執行:

gcc server9.c

./a.out

由於此時驅動已經在內核了,設備文件也已經存在了,Linux伺服器程序可以正常運行了。C001 Java命令行方式與Linux伺服器連通

其三、windows客戶端(Java語言)

windows客戶端採用Java編寫,源文件名:c.java,命令行方式編譯。其中Socket("192.168.137.129",1234)表明要連接的伺服器是192.168.137.129,伺服器埠是1234

代碼如下:

使用命令行方式編譯,執行:

相關焦點

  • Linux內核學習:簡單的字符設備驅動
    Linux內核設備驅動架構如下圖所示,Linux內核針對上述3類設備抽象出來一套完整的驅動框架和API接口,以便驅動開發者在編寫某類設備驅動時可重複使用。字符設備是以字節為單位的I/O傳輸,這種字符流的傳輸率通常比較低。
  • 為什麼公司普遍選擇linux伺服器而不是windows伺服器
    伺服器是計算機軟體或向其他程序或設備提供服務的機器。有很多不同類型的伺服器如Web伺服器,資料庫伺服器,應用程式伺服器,雲計算伺服器,文件伺服器,郵件伺服器,DNS伺服器等等。多年來,linux作業系統的使用份額大大提高,主要是在伺服器上,Linux發行版處於技術最前沿。
  • 網站伺服器系統,選windows還是linux?
    important}windows系統和linux系統,是目前網站伺服器使用最多的2大伺服器系統,當然,還有unix那麼,在我們購買網站伺服器時,是選擇windows系統好,還是選擇linux系統好呢?這還是要看具體情況而定。
  • 嵌入式Linux設備驅動開發之:實驗內容——test驅動
    本文引用地址:http://www.eepw.com.cn/article/257106.htm1.實驗目的該實驗是編寫最簡單的字符驅動程序,這裡的設備也就是一段內存,實現簡單的讀寫功能,並列出常用格式的Makefile以及驅動的加載和卸載腳本。讀者可以熟悉字符設備驅動的整個編寫流程。
  • 網站伺服器系統,是windows好,還是linux系統好?
    windows系統和linux系統,是目前網站伺服器使用最多的2大伺服器系統,當然,還有unix也可以作為伺服器系統,只是已經被邊緣化,很少見到。那麼,在我們購買網站伺服器時,是選擇windows系統好,還是選擇linux系統好呢?
  • 網站伺服器系統,是windows好,還是linux系統好?
    windows系統和linux系統,是目前網站伺服器使用最多的2大伺服器系統,當然,還有unix也可以作為伺服器系統,只是已經被邊緣化,很少見到。那麼,在我們購買網站伺服器時,是選擇windows系統好,還是選擇linux系統好呢?這還是要看具體情況而定。
  • 從串口驅動到Linux驅動模型,想轉Linux的必會!
    例如:mount /dev/cdrom /cdrom/dev:dev 是設備(device)的英文縮寫。這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有linux系統中使用的外部設備。但是這裡並不是放的外部設備的驅動程序。這一點和常用的windows,dos作業系統不一樣。它實際上是一個訪問這些外部設備的埠。
  • linux內核字符設備驅動到platform驅動架構改造過程
    關注」技術簡說「(13站同名),帶你由淺入深學習linux內核源碼。linux內核開發100講免費教程,每周二、四晚9點準時更新,敬請收看。進我主頁點」視頻「欄目即可觀看。改造前的字符設備驅動源碼:include <linux/moduleparam.h>include <linux/fs.h>include <linux/poll.h>include <linux/slab.h>define OK (0)34;hello_open
  • 基於USB設備的Linux網絡驅動程序開發
    它支持主流的TCP/IP以及IPX/SPX、 NETBEUI等眾多網絡協議,無論在嵌入式系統,伺服器還是桌面作業系統領域,Linux都取得了廣泛的應用。網絡驅動程序和網絡硬體設備實現網絡協議棧中的數據鏈路層和物理層,對上層協議提供支持,是網絡協議棧的重要組成部分,對Linux的網絡性能起著決定作用。本文主要討論基於USB總線的 Linux網絡驅動程序的設計和實現方法。2.
  • 內核不斷升級 如何學習linux設備驅動
    【IT168技術】面對不斷升級的linux內核、GNU開發工具、linux環境下的各種圖形庫,很多linux應用程式開發人員和linux設備驅動開發人員即興奮,又煩躁。興奮的是新的軟體軟體、工具給我提供了更強大的功能,煩躁的是適應新軟體的特性、搭建新環境是一項非常繁瑣的事情。
  • 詳解|linux和windows有什麼區別 linux優缺點有哪些
    linux和windows的區別:1.首先從界面上個人感覺windows的界面比linux漂亮,從視覺效果上來看windows給人感覺更好linux和windows的區別 linux優缺點一覽3.在使用方面的區別是windows可以直接打開軟體進行圖形界面的操作,而linux系統經常通過命令行來執行。
  • 雲南網站建設選擇windows伺服器還是linux伺服器好?
    雲南銀穗科技今天給大家簡單介紹一下網站伺服器中常用的兩大系統:windows和linux。小編第一次上手伺服器選擇的是windows系統,可以遠程控制伺服器,操作起來比較容易上手,就像操作自己電腦一樣,安裝軟體配置環境等。
  • 基於Linux系統的觸控螢幕驅動方案
    Linux作為是目前最流行的作業系統之一,在桌面系統、伺服器領域有大量用戶,具有原始碼開放,支持的硬體豐富、高可移植等優點,在嵌入式領域也備受青睞。Linux根據不同設備,將驅動程序分為字符設備驅動、塊設備驅動、網絡設備驅動三種,Linux輸入子系統u是對字符類型輸入設備驅動實現方式的抽象,是對分散的、多種不同類別的輸入設備進行統一處理的內核驅動模型。
  • 手把手教Linux驅動3-之字符設備架構詳解,建議收藏
    字符設備驅動程序通常至少要實現open、close、read和write的系統調用。字符終端(/dev/console)和串口(/dev/ttyS0以及類似設備)就是兩個字符設備,它們能很好的說明「流」這種抽象概念。
  • linux驅動開發第1講:帶你編寫一個最簡單的字符設備驅動
    開發linux內核驅動需要以下4個步驟:編寫hello驅動代碼編寫makefile編譯和加載hello驅動編寫應用程式測試hello驅動應用層程序在編譯的時候,需要連結c運行時庫和glibc庫。r\n&34;%s\r\n& mknod /dev/hello c 232 0備註:這裡的232和0要跟驅動文件裡定義的主次設備號對應起來!
  • 手把手教Linux驅動3-之字符設備架構詳解,建議收藏
    一、Linux設備分類Linux系統為了管理方便,將設備分成三種基本類型:字符設備塊設備網絡設備字符(char)設備是個能夠像字節流(類似文件)一樣被訪問的設備,由字符設備驅動程序來實現這種特性在內核中,和字符驅動程序相比,塊驅動程序具有完全不同的接口。塊設備文件(類型為b):任何網絡事物都需要經過一個網絡接口形成,網絡接口是一個能夠和其他主機交換數據的設備。接口通常是一個硬體設備,但也可能是個純軟體設備,比如迴環(loopback)接口。
  • Linux外部設備的基本概念
    1 設備的標識本文引用地址:http://www.eepw.com.cn/article/148497.htm系統以設各號來對設備進行標識,設備號分為主設備號和次設各號。一個主設備號是同一類設各的標識,它們具有同一個設各驅動程序。
  • 關於linux圖形界面的基本概念
    本文引用地址:http://www.eepw.com.cn/article/148500.htm一,linux本身沒有圖形界面,linux現在的圖形界面的實現只是linux下的應用程式實現的.圖形界面並不是linux的一部分,linux只是一個基於命令行的作業系統,linux和Xfree的關係就相當於當年的DOS和 WINDOWS3.0一樣,windows3.0不是獨立的作業系統,它只是DOS的擴充,是DOS下的應用程式級別的系統,不是獨立的作業系統,同樣 XFree只是linux下的一個應用程式而已.不是系統的一部分,但是X的處在可以方便用戶使用電腦.WINDOWS95及以後的版本就不一樣了
  • Linux系統與Windows系統對比有哪些不同
    1、 編程篇 linux與windows對比 雖然五年已經過去了,但是系統編程的模式基本沒有什麼改變,由於GPL的存在linux在編程效率上比windows要高不少,這是因為GPL公開程序代碼,這樣可以減少重複開發,所以linux在編程模式上比windows要略微強點。
  • 利用SecureCRT的SFTP功能實現windows與linux伺服器間文件傳輸
    利用SecureCRT的SFTP功能實現windows與linux伺服器之間文件的上傳下載>windows和linux之間文件傳出有很多,比較常用的一般通過linux中的rz和sz命令上傳和下載,這裡不過多介紹,今天我們介紹通過SecureCRT的SFTP功能實現windows和linux系統間的文件傳輸。