欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux系統(tǒng)下基于UDP+sqlite3實現(xiàn)的單詞查詢器(推薦)

 更新時間:2025年06月16日 10:14:01   作者:SELSL  
文章介紹基于UDP協(xié)議與SQLite3數(shù)據(jù)庫實現(xiàn)的Linux單詞查詢系統(tǒng),包含服務(wù)端與客戶端代碼設(shè)計,通過CSV轉(zhuǎn)DB構(gòu)建單詞表,實現(xiàn)數(shù)據(jù)查詢及日志記錄功能,采用Makefile管理源碼并展示運行結(jié)果,感興趣的朋友一起看看吧

基于UDP+sqlite3實現(xiàn)的單詞查詢器(Linux系統(tǒng)下)

一、準(zhǔn)備工作

我們首先要準(zhǔn)備一個單詞表,注意必須要是.csv結(jié)束的表格

其實里面內(nèi)容和exsl表格一樣

因為我們要使用sqlite3數(shù)據(jù)庫來管理單詞表以實現(xiàn)單詞查詢的功能,所以要把.csv結(jié)束的單詞表轉(zhuǎn)化為.db結(jié)尾的數(shù)據(jù)庫

Linux終端輸入sqlite3 mydatabase.db進入sqlite3數(shù)據(jù)庫,進行下圖操作,把.csv格式的單詞表轉(zhuǎn)化為.db的數(shù)據(jù)庫

二、單詞代碼設(shè)計總框架

這個有點大,看下面這個分開代碼框架圖

根據(jù)這個我們來實現(xiàn)代碼。

三、服務(wù)端代碼

1、檢測main函數(shù)參數(shù)是否正確

檢查是否少輸入了ip、端口號等信息,如果少輸入產(chǎn)生錯誤,退出程序

2、socket創(chuàng)建套接字、使用UDP通信

使用UDP雖然沒有TCP的穩(wěn)定,但是對于小數(shù)據(jù)頻繁交互比較適合,對于單詞查詢這種數(shù)據(jù)量比較小的也很小概率回出現(xiàn)錯誤。

3、設(shè)置通信結(jié)構(gòu)體

這里主要是配置IP、端口號

4、bind綁定通信結(jié)構(gòu)體 5、打開sqlite3數(shù)據(jù)庫,準(zhǔn)備開始查詢數(shù)據(jù)庫.db中的單詞

sqlite3打開失敗回結(jié)束程序

6、進入死循環(huán),一直使用recvfrom接收客戶端發(fā)來的數(shù)據(jù)

7、接收到了數(shù)據(jù)使用sqlite3中的API sqlite3_exec進行查詢

8、不管成功失敗,我們都會使用sendto發(fā)送成功查到的單詞或失敗信息

9、ctrl+c會結(jié)束死循環(huán),關(guān)閉sqlite3、關(guān)閉服務(wù)端通信、結(jié)束服務(wù)端程序

四、客戶端代碼

1、使用getenv獲取環(huán)境變量中設(shè)置了的IP號與端口號

可以通過vim ~/.bachrc來查看、編寫里面的內(nèi)容

可以看到我這里的環(huán)境變量

2、檢測參數(shù)

如果沒有單詞參數(shù)則結(jié)束客戶端程序

3、socket創(chuàng)建套接字、使用UDP通信 4、設(shè)置通信結(jié)構(gòu)體

這里和服務(wù)端一樣,還是配置IP,和端口號

5、connect請求與服務(wù)端進行確定

6、向服務(wù)端send發(fā)送查單詞請求

7、rcve接收服務(wù)端查到的數(shù)據(jù)

8、查詢時間輸出,把查詢時間+單詞保存到一個文檔日志里面

9、關(guān)閉查詢?nèi)罩?、關(guān)閉網(wǎng)絡(luò)通信、結(jié)束查詢。

五、代碼展示、結(jié)果展示

在最后提供的資料中source文件夾有server服務(wù)端源碼

總體預(yù)覽:

在最后提供的資料中source文件夾有client客戶端源碼

整體預(yù)覽

兩個代碼都使用了Makefile進行了管理

六、運行結(jié)果展示

最后附帶源碼地址:https://download.csdn.net/download/2403_82436914/90564382

到此這篇關(guān)于Linux系統(tǒng)下基于UDP+sqlite3實現(xiàn)的單詞查詢器(推薦)的文章就介紹到這了,更多相關(guān)udp sqlite單詞查詢器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • System.Data.SQLite 數(shù)據(jù)庫詳細(xì)介紹

    System.Data.SQLite 數(shù)據(jù)庫詳細(xì)介紹

    System.Data.SQLite是SQLite的加強版,它可以無需.NET Framework支持,由于它內(nèi)部包含了一個ADO.NET 2.0引擎,所以.NET開發(fā)人員可以利用System.Data.SQLite方便地開發(fā).NET程序。
    2011-02-02
  • sqlite3 top的查詢及l(fā)imit語法介紹

    sqlite3 top的查詢及l(fā)imit語法介紹

    sqlite3中沒有top的語法結(jié)構(gòu),不過相關(guān)的語法能實現(xiàn)跟top語法相同的功能,感興趣的你可以參考下,希望可以幫助到你
    2013-02-02
  • SQLite 內(nèi)存數(shù)據(jù)庫學(xué)習(xí)手冊

    SQLite 內(nèi)存數(shù)據(jù)庫學(xué)習(xí)手冊

    這篇文章主要介紹SQLite 內(nèi)存數(shù)據(jù)庫的使用方法, 需要的朋友可以參考下
    2013-12-12
  • 保護你的Sqlite數(shù)據(jù)庫(SQLite數(shù)據(jù)庫安全秘籍)

    保護你的Sqlite數(shù)據(jù)庫(SQLite數(shù)據(jù)庫安全秘籍)

    相信使用PHP開發(fā)的人員一定不會對SQLite感到陌生了,PHP5已經(jīng)集成了這個輕量型的數(shù)據(jù)庫。并且很多虛擬主機無論是win還是*nux都支持它。
    2009-08-08
  • SQLite優(yōu)化方法

    SQLite優(yōu)化方法

    SQLite的數(shù)據(jù)庫本質(zhì)上來講就是一個磁盤上的文件,所以一切的數(shù)據(jù)庫操作其實都會轉(zhuǎn)化為對文件的操作,而頻繁的文件操作將會是一個很好時的過程,會極大地影響數(shù)據(jù)庫存取的速度。
    2008-09-09
  • SQLite教程(三):數(shù)據(jù)表和視圖簡介

    SQLite教程(三):數(shù)據(jù)表和視圖簡介

    這篇文章主要介紹了SQLite教程(三):數(shù)據(jù)表和視圖簡介,本文講解了創(chuàng)建數(shù)據(jù)表、表的修改、表的刪除、創(chuàng)建視圖、刪除視圖等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • 一文輕松掌握SQLite3基本用法(收藏版)

    一文輕松掌握SQLite3基本用法(收藏版)

    本文介紹SQLite3作為輕量級嵌入式數(shù)據(jù)庫的特點與應(yīng)用,涵蓋創(chuàng)建、表操作、增刪改查、事務(wù)索引等基本用法,及觸發(fā)器、視圖、參數(shù)化查詢等高級功能,通過圖書管理系統(tǒng)案例展示實際應(yīng)用方法,感興趣的朋友一起看看吧
    2025-06-06
  • 一篇文章帶你掌握SQLite3基本用法

    一篇文章帶你掌握SQLite3基本用法

    SQLite是一款輕型的數(shù)據(jù)庫,它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,下面這篇文章主要給大家介紹了關(guān)于SQLite3基本用法的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Sqlite數(shù)據(jù)庫里插入數(shù)據(jù)的條數(shù)上限是500

    Sqlite數(shù)據(jù)庫里插入數(shù)據(jù)的條數(shù)上限是500

    sqlite每次只能插入的數(shù)據(jù)不能超過500條數(shù)據(jù),大家在使用的時候需要注意一下。
    2015-04-04
  • SQLite教程(四):內(nèi)置函數(shù)

    SQLite教程(四):內(nèi)置函數(shù)

    這篇文章主要介紹了SQLite教程(四):內(nèi)置函數(shù),本文講解了聚合函數(shù)、核心函數(shù)、日期和時間函數(shù)、,需要的朋友可以參考下
    2015-05-05

最新評論