Linux系統(tǒng)下基于UDP+sqlite3實現(xiàn)的單詞查詢器(推薦)
基于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是SQLite的加強版,它可以無需.NET Framework支持,由于它內(nèi)部包含了一個ADO.NET 2.0引擎,所以.NET開發(fā)人員可以利用System.Data.SQLite方便地開發(fā).NET程序。2011-02-02SQLite 內(nèi)存數(shù)據(jù)庫學(xué)習(xí)手冊
這篇文章主要介紹SQLite 內(nèi)存數(shù)據(jù)庫的使用方法, 需要的朋友可以參考下2013-12-12保護你的Sqlite數(shù)據(jù)庫(SQLite數(shù)據(jù)庫安全秘籍)
相信使用PHP開發(fā)的人員一定不會對SQLite感到陌生了,PHP5已經(jīng)集成了這個輕量型的數(shù)據(jù)庫。并且很多虛擬主機無論是win還是*nux都支持它。2009-08-08Sqlite數(shù)據(jù)庫里插入數(shù)據(jù)的條數(shù)上限是500
sqlite每次只能插入的數(shù)據(jù)不能超過500條數(shù)據(jù),大家在使用的時候需要注意一下。2015-04-04