A. 如何在windows下或者linux下對樹莓派編程(c語言或C++)
硬體的沒玩過
樹莓派 是不是那個 教學型 ARM編程主板?
建議你去 他們官方論壇看下
我同學他們畢業搞ARM的 都是 自己焊接板子的
然後用 winCE或者 unix linux 的嵌入式系統
他這種定製的包裝過的,一般都把很多底層的 原理封裝了,只需要 學號他官方提供的 支持文檔和事常式序,就能實現 很多功能。而且
如果 你直接去學C/C++ windows編程 以及通信編程 SSH協議 等 反倒離目的遠了。
我估計你應該是個 愛好者,或者學生。
論壇里有很多 愛好者 發的 相關項目及 細節
比如:我剛才在 論壇里看到一個帖子說
做了一個工具,在windows下面和pi 進行ssh 交互
http://bbs.ickey.cn/index.php?app=group&ac=topic&id=2573
B. windterm為什麼沒有登錄
因為沒有限制。WindTerm一款使用使用C語言開發的跨平台SSH客戶端,完全免費用於商業和非商業用途,沒有限制,因此用戶不有注冊賬號就可以使用。
C. Linux-SSL和SSH和OpenSSH,OpenSSL有什麼區別
ssl是通訊鏈路的附加層。可以包含很多協議。https, ftps, .....
ssh只是加密的shell,最初是用來替代telnet的。通過port forward,也可以讓其他協議通過ssh的隧道而起到加密的效果。
SSL是一種國際標準的加密及身份認證通信協議,您用的瀏覽器就支持此協議。SSL(Secure Sockets Layer)最初是由美國Netscape公司研究出來的,後來成為了Internet網上安全通訊與交易的標准。SSL協議使用通訊雙方的客戶證書以及CA根證書,允許客戶/伺服器應用以一種不能被偷聽的方式通訊,在通訊雙方間建立起了一條安全的、可信任的通訊通道。它具備以下基本特徵:信息保密性、信息完整性、相互鑒定。 主要用於提高應用程序之間數據的安全系數。SSL協議的整個概念可以被總結為:一個保證任何安裝了安全套接字的客戶和伺服器間事務安全的協議,它涉及所有TC/IP應用程序。
SSH的英文全稱是Secure SHell。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣「中間人」這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的「通道」。SSH是由客戶端和服務端的軟體組成的,有兩個不兼容的版本分別是:1.x和2.x。用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。SSH的安全驗證是如何工作的從客戶端來看,SSH提供兩種級別的安全驗證。第一種級別(基於口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的伺服器就是你想連接的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到「中間人」這種方式的攻擊。第二種級別(基於密匙的安全驗證)需要依靠密匙,也就是你必須為自己創建一對密匙,並把公用密匙放在需要訪問的伺服器上。如果你要連接到SSH伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的密匙進行安全驗證。伺服器收到請求之後,先在你在該伺服器的家目錄下尋找你的公用密匙,然後把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,伺服器就用公用密匙加密「質詢」(challenge)並把它發送給客戶端軟體。客戶端軟體收到「質詢」之後就可以用你的私人密匙解密再把它發送給伺服器。用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。第二種級別不僅加密所有傳送的數據,而且「中間人」這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒。
OpenSSL------一個C語言函數庫,是對SSL協議的實現。
OpenSSH-----是對SSH協議的實現。
ssh 利用 openssl 提供的庫。openssl 中也有個叫做 openssl 的工具,是 openssl 中的庫的命令行介面。
從編譯依賴上看:
openssh依賴於openssl,沒有openssl的話openssh就編譯不過去,也運行不了。
HTTPS可以使用TLS或者SSL協議,而openssl是TLS、SSL協議的開源實現,提供開發庫和命令行程序。openssl很優秀,所以很多涉及到數據加密、傳輸加密的地方都會使用openssl的庫來做。
可以理解成所有的HTTPS都使用了openssl。以root身份執行命令:grep -l 'libssl.*deleted' /proc/*/maps | tr -cd 0-9\\n | xargs -r ps u,可以看到哪些進程載入了老版本的openssl庫。
D. java web採用ssh框架,怎麼載入C語言dll
public class TestDLL {
static {
System.loadLibrary("dllFileName"); // 載入dll
}
public native static void test(); // 這是dll中的方法
public static void main(String[] args) {
test(); // 調用dll中的方法
}
}
E. C語言題,求解!
第一個空是輸入字母,字母是屬於字元型,所以是%c%c。
因為是小寫字母,第二個空轉換成大寫字母,所以是c1-32,c2-32。
第三個空是輸出整型字母的值,也就是"%d,%d,%d,%d",c1,c2,c1-32,c2-32。
記不太清楚,不能確保一定正確,僅供參考。
F. SSL和SSH和OpenSSH,OpenSSL有什麼區別
1、SSL(Secure Sockets Layer 安全套接層),它提供使用 TCP/IP 的通信應用程序間的隱私與完整性。比如你訪問https://servername 就是用了ssl協議,地址欄會出現小鎖,雙擊就能查看ssl伺服器證書的詳細信息。TCP埠:443
2、SSH(Secure Shell 遠程登陸用),安全可以和telnet比較一下,比如telnet傳輸用戶密碼是明文的,而SSH是加密的。明文的可以監聽到。TCP埠22
3、OpenSSH是個SSH的軟體,OpenSSH is the premier connectivity tool for remote login with the SSH protocol. linux/unix都用openssh軟體提供SSH服務。簡單來說,比如以前的Solaris系統默認不提供ssh服務,需要安裝OpenSSH才行。
G. 怎麼用樹莓派編譯C語言程序
用樹莓派編譯C語言程序方法:
首先安裝Xshell軟體。
點擊New,新建一個ssh連接。
名字隨便起,這里我寫樹莓派。
ip地址,寫樹莓派的ip,我的樹莓派ip是192.168.1.222。
點擊OK。
這樣就建好ssh鏈接了,雙擊樹莓派。
填寫的用戶名,我是用的默認的pi。
點擊OK。
填寫密碼,默認的是raspberry
連接成功。
在命令行輸入vim test.c。
回車。
這時,無法輸入任何字元,按下i鍵,進入編輯模式,此時test.c會變成INSERT
,這時就可以輸入代碼了。
編輯好代碼。按ESC,進入命令行模式
輸入wq!回車
退出vim程序。
接下來在命令行中輸入gcc test.c -o test
回車,生成可執行文件test
./test即可看到運行結果hello world !
大功告成
H. c語言編寫路線
#include <stdio.h>
#include <malloc.h>
#include<stdlib.h>
#define MAX 100
#define MAXNUM 10000000
int previous[MAX-1];// 求路徑需要
int pp[MAX-1];// 記錄最短路徑
typedef struct graphnode
{
int vexnum; //頂點
int arcnum; //弧
int gra[MAX][MAX]; //鄰接矩陣表示0或1
}Graph;
int dist[MAX]; // 最短距離
int arc[MAX][MAX]; // 權
int main()
{
void Dijkstra(Graph *g,int v);
int i,j,n,m;
int v; //源點
Graph *G;
G=(Graph *)malloc(sizeof(Graph));
printf("vexnum:\n");
scanf("%d",&G->vexnum);
printf("arcnum:\n");
scanf("%d",&G->arcnum);
printf("graph:\n");
for(i=0;i<G->vexnum;i++)
for(j=0;j<G->vexnum;j++)
{
scanf("%d",&G->gra[i][j]);
}
for(i=0;i<G->vexnum;i++)
for(j=0;j<G->vexnum;j++)
{
if(G->gra[i][j]==1)
{
printf("請輸入%d到%d的權值:",i,j);
scanf("%d",&arc[i][j]);//若有弧 則輸入i到j直接的權
}
else
arc[i][j]=MAXNUM;
}
printf("請輸入源點v的值:");
scanf("%d",&v);
Dijkstra(G,v);
printf("請輸入源點所要到達的點:\n");
scanf("%d",&n);
pp[0]=0;
i=1;
m=n;// 記錄n的值
while(n!=0)// 求0到其他點路徑
{
pp[i]=previous[n];
i++;
n=previous[n];
}
printf("Path:0 -> ");
for(j=G->vexnum-1;j>=0;j--)
if(pp[j]!=0)
printf(" %d -> ",pp[j]);
printf("%d\n",m);
return 0;
}
void Dijkstra(Graph *G,int v)
{
int previous[MAX-1];
int newdist;
bool sign[MAX];
if(v<0||v>MAX-1)
{
printf("該源點不存在!\n");
return;
}
for(int i=0;i<G->vexnum;i++) //初始化
{
dist[i]=arc[v][i];
sign[i]=false;
if(dist[i]==MAXNUM)
previous[i]=0;
else
previous[i]=v;
}
dist[v]=0;
sign[v]=true;
for(i=0;i<G->vexnum;i++) // i<n-1 待定
{
float temp=MAXNUM;
int u=v; //u 中間變數
for(int j=0;j<G->vexnum;j++)
if((!sign[j])&&(dist[j]<temp))
{
u=j;
temp=dist[j];
}
sign[u]=true;
for(j=0;j<G->vexnum;j++)
if((!sign[j])&&(arc[u][j]<MAXNUM))
{
newdist=dist[u]+arc[u][j];
if(newdist<dist[j])
{
dist[j]=newdist;
previous[j]=u;
}
}
}
for(i=0;i<G->vexnum;i++)
if(dist[i]!=MAXNUM)
printf("從%d到%d的最短路徑是 %d\n",v,i,dist[i]);
else
printf("從%d到%d無最短路徑\n",v,i);
printf("\n");
}
這是Dijkstra演算法求單源最短路徑演算法 上程序中 假定頂點從0開始,搜索整個圖,然後求出0到其他各點的最短距離,存放在dist數組中,main函數後面幾行是求0到其他各點的路徑 基本上能滿足你的要求了
I. 想將一個編好的存放在windows系統中的C語言代碼復制到linux虛擬機的vi編譯環境中,哪位高手能幫忙實現
用ssh工具連接linux虛擬機。
第一步,在linux要確認安裝了openssh,你安裝的是redhat或者ubuntu的,一般都已經安裝了。
第二步,在windows機器上安裝ssh工具,推薦幾個 Xshell(http://www.netsarang.com/download/down_xsh.html)、SecureCRT。Xshell分企業和個人,個人是免費的(安裝的時候會提醒你),SecureCRT是收費的,破解吧。
第三步,用ssh工具連接linux機器。
以後的復制粘貼,用滑鼠就OK了,別用鍵盤。