情況是這樣的:
這個工程的最終產品是一個可以遠程操作的測驗平臺,通過TCP傳遞一系列的測驗引數來呼叫一些相應的測驗程式,產生測驗結果供遠程查看。
階段一,有一個測驗函式庫介面的測驗程式(用C語音撰寫),他可以完成一次測驗,生成相應的測驗結果(比如得到A方法的執行時間)。

階段二,有一個自動呼叫的shell腳本,它會根據測驗引數來反復地呼叫測驗程式進行測驗,得到一組測驗結果(比如呼叫A方法10次,得到每次的執行時間,每次呼叫都是重新啟動測驗程式行程)。然后可以對這些結果進行資料分析(例如求平均數,得到A方法執行的平均時間),分析的時候會呼叫一個python腳本來進行。

階段三,實作一個服務器,接收遠程請求,客戶端把測驗的引數發過來,比如測驗A方法5次。然后服務器就根據收到的引數去呼叫shell腳本,把引數傳給腳本,腳本開始執行階段二的作業(得到A方法執行的平均時間)。

好啦,其實還有階段四,階段五,是實作Web和CGI,但是現在先不考慮。
現在的問題是,可以看到這個工程,C程式會去調shell腳本,shell腳本又調C程式(還有python),感覺很復雜。而且如果這個服務器要做到不阻塞的話,還要再加一個C程式。因為如果直接用system方法調shell腳本的話,是要等待回傳的。那么就要考慮,有一個專門呼叫system方法的C程式去調shell腳本,然后服務器fork一個子行程后再exec這個C程式,這樣的話服務器本身不阻塞。感覺這樣的實作似乎太累了。
uj5u.com熱心網友回復:
宗旨:方便使用無BUG
維護方便易擴展
就行了
uj5u.com熱心網友回復:
我竟無言以對。。。。
uj5u.com熱心網友回復:
是問題太簡單還是太復雜呢?不可能是太復雜嘛。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/142671.html
標籤:網絡通信
下一篇:oracle如何查看記錄
