obliv-c學習之旅
step 1:一開始什麼都不知道,按部就班摸索安裝。
模擬編譯原理實驗,大概知道了這個編譯器是個怎麼回事。解決了一開始因vs對編譯器留下的刻板印象。(原來還有這麼簡陋的命令列程式設計)
step2:進入test看**。發現看不懂。於是找了個檔案看。(建議用谷歌)
api介紹:
第一方呼叫該函式監聽提供的埠號。監聽的應該是自己的埠號。【猜想】等待對方主動來連線自己大概,好像和三次握手不一樣。
第二方呼叫該函式,用於連線第一方。引數
server
是第一方的
ip。其中兩個函式的
port
必須一樣,否則會
connect
失敗。【驗證成功】
例項中,
party多為1
、2這樣的數字,
protocoldesc
是乙個物件。**中建立協議就是通過初始化這個物件,可能和底部
api實現有關。
的加密電路協議。
step3:結合檔案理解**,並編寫**。
#pragma once
#define maxn 20
typedef struct protocolio
protocolio;
int get_common(void* args);//功能函式
const char* myside();//返回邊名稱,即是哪一方
————test1.c————
#include
#include
#include"../common/util.h"
//引用了該檔案中的tcp連線函式octestutiltcpordie(&pd,remote_host,ar**[1]);
#include"test1.h"
const char* myside(int currentparty)
int main(int argc,char *ar**)
// skip input sanitization
const char* remote_host = (strcmp(ar**[2],"--")?ar**[2]:null);
io.size=strlen(ar**[3]);//輸入資料
if(io.size>maxn)
io.s=ar**[3];
//sscanf(ar**[3],"%s",&io.s);
for(int i=io.size;iio.s[i]=remote_host?'#':'$';
//protocolusestdio(&pd);
octestutiltcpordie(&pd,remote_host,ar**[1]);//tcp連線
int currentparty = (remote_host?2:1);
setcurrentparty(&pd,currentparty);
execyaoprotocol(&pd,get_common,&io);//加密電路協議的執行
cleanupprotocol(&pd);
fprintf(stderr,"\n%s ",myside(currentparty));
fprintf(stderr," common: %s\n",io.l);
return 0;
}#include
#include
#include"test1.h"
void readstring(obliv unsigned char* dest, obliv int n,int party,char c);
int get_common(void* args)
} //該無條件執行塊是為了修改n,因為n為外部定義的資料,在obliv塊中被frozon,不能修改。}}
最後建立兩個虛擬機器,分別執行,第二方輸入第一方的ip位址。執行成功!
第一台虛擬機器輸入:
./a.out port –
字串 &
第二個虛擬機器輸入:
./a.out port ip
位址 字串
Java學習之旅
整型,字元型,浮點型的資料在混合運算中相互轉換,轉換時應遵循以下原則 1 容量小的型別自動轉換成容量大的資料型別 資料型別按照容量大小排序。2 byte,short,char int long float double。3 byte,short,char之間不會相互轉換,他們三者在計算時首先會轉換為...
PMP學習之旅
昨天結束了pmp考試,乙個階段的 專案 完成了,雖然還不知道自己能不能通過,但我覺得有必要乘著熱度把這3個月左右時間的學習總結一下。起初開始準備學pmp的時候,我對這個學習並不是太 感冒 的,我想寧可把時間和成本花在技術深造上。做技術的人總是很固執的,固執的認為 技術為王 固執的認為技術才是推動社會...
ABP學習之旅
1 我使用abp的啟動模板 來建立乙個web應用程式。2 載入專案解決方案 在abp根據模板建立解決方案後,編譯報錯,提示某個包的版本不對。解決方案 3 在.core中建立entity if settings.usedataannotations else 4 方法entityframworkcor...