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了,别用键盘。