[英]get the binary data transferred from grpc client
我是gRPC框架的新手,並且已經在PC上創建了一個示例客戶端服務器(請參閱this )。
在我的客戶端服務器應用程序中,我實現了一個簡單的RPC
service NameStudent {
rpc GetRoll(RollNo) returns (Details) {}
}
客戶發送RollNo並接收他/她的詳細信息,包括姓名,年齡,性別,父母姓名和RollNo 。
message RollNo{
int32 roll = 1;
}
message Details {
string name = 1;
string gender = 2;
int32 age = 3;
string parent = 4;
RollNo rollid = 5;
}
實際的服務器和客戶端代碼是此處解釋的示例代碼的改編
現在,我的服務器可以偵聽“ 0.0.0.0:50051(address:port)”,並且客戶端可以在“ localhost:50051”上發送滾動號並接收詳細信息。
我想查看在客戶端和服務器之間傳輸的實際二進制數據 。 我嘗試使用Wireshark,但我不明白我在這里看到的內容。
在這里需要幫助以了解Wireshark,或者可以使用其他任何方式查看二進制數據。
grpc的整個想法就是隱藏這一點。 假設我們忽略了這一點,而您知道自己在做什么。
反向工程師練習的兩個良好起點是:
從簡單開始:編譯一個發送整數的程序。 理解。 聞一下 然后編譯一個發送字符串的程序。 嘗試幾個值。 一旦您了解了它,就可以解決了解Google如何發送您的結構的問題。
使用已知數據並進行一些細微的變化:如果您開始知道要發送的數據,則知道505249 ...的含義會更容易(例如,發送“ Hello world”字符串;然后將其更改為“ Hella world”;看看是什么)更改已編碼的嗅探;還檢查發送幾次相同的數據會產生相同的嗅探輸出)。 應用優先點:從簡單的字符串開始,然后是空字符串,然后是“”,然后是“ a”,然后是“ b”,依此類推,然后再傳遞給復雜且較大的字符串。 不要害怕從簡單開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.