阿里云esc使用体验

简介: 阿里云飞天计划使用感受

本人介绍:
本人为长春理工大学人工智能学院20级机器人工程专业学生,最近由于长春疫情返回家中上网课,由于在自学TCPsocket通信中遇到一个问题,关于如何在公网中实现TCP通信,于是查阅资料后知道要想实现公网TCP通信就得有一个公网域名,于是我打算申请一个云服务器,用这个云服务器作为中转站,即可实现TCPsocket公网通信,于是在寻找云服务器的过程中我了解到了阿里云开发者飞天计划。
接下来我说一下在使用阿里云服务器的过程中遇到的问题。由于我使用云服务器主要是做TCP服务端,所以这就涉及到了TCP协议,以及IP和端口,在端口上面我是吃了大亏的,之前把程序写好后运行一直报错,一开始以为是端口防火墙问题,重新设置了很多次安全组以及防火墙,但一直没能解决问题,后来才发现原来是从Linux虚拟机复制粘贴过来的时候格式出了问题。然后我选择用Xshell将Linux虚拟机的文件传到windows,然后通过Xshell远程登陆阿里云,将文件传到云服务器上,再次编译,成功运行!
通过本次的实践,我掌握了云服务器的基本操作,加深了我对Linux命令行的理解,并且对TCP协议有了更深的认识,以后无论是学习UDP或者HTTP都能更快速的上手,接下来展示一下我做的TCP公网通信用阿里云服务器做转发,一个客户端为LinuxQT上位机,另外一个客户端为esp8266,通过qt上位机控制led灯的开闭。

客户端代码:

include "stdio.h"

include "stdlib.h"

include "assert.h"

include "string.h"

include "sys/types.h"

include "sys/socket.h"

include "arpa/inet.h"

include "netinet/in.h"

include "unistd.h"

include "pthread.h"

int ret;
int i=0;
int c_fd[2];
struct sockaddr_in saddr,caddr;
pthread_t t1;
pthread_t t2;
char BUFF1[256];
char BUFF2[256];
int read_1;
int read_2;
int param=100;

void thread1(void arg)
{
while(1)

{
memset(BUFF1,0,sizeof(BUFF1));
printf("Client1 address is %s\n",inet_ntoa(caddr.sin_addr));
read_1=read(c_fd[0],BUFF1,255);
if(read_1==-1) {printf("read client1 is error");}
else { printf("I read client1:%s\n",BUFF1);
write(c_fd[1],BUFF1,strlen(BUFF1));
}

}

}

void thread2(void arg)
{

while(1)
{
memset(BUFF2,0,sizeof(BUFF2));
printf("client2 address is %s\n",inet_ntoa(caddr.sin_addr));
read_2=read(c_fd[1],BUFF2,255);
if(read_2==-1) {printf("read client2 is error");}
else { printf("I read client2:%s\n",BUFF2);
write(c_fd[0],BUFF2,strlen(BUFF2));
}

}

}

int main()
{

    int sockfd=socket(AF_INET,SOCK_STREAM,0);
    assert(sockfd!=-1);

// struct sockaddr_in saddr,caddr;

    memset(&saddr,0,sizeof(saddr));
    saddr.sin_family=AF_INET;
    saddr.sin_port=htons(8000);
    saddr.sin_addr.s_addr=inet_addr("172.17.124.48");
    int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));
    assert(res!=-1);
    res=listen(sockfd,5);
    assert(res!=0);

    int len=sizeof(caddr);


    while(1)
    {
       if(i==0)
       {
       c_fd[i]=accept(sockfd,(struct sockaddr*)&caddr,&len);
            if(c_fd[i]<0){continue;}

i=1;

            printf("I am client1\n");
       }else {

          c_fd[i]=accept(sockfd,(struct sockaddr*)&caddr,&len);
         if(c_fd[i]<0){continue;}
          i=2;
          printf("I am client2\n");
     }

if(c_fd[0]==-1)

  {printf("client1 is connect error");}
    else
    { ret=pthread_create(&t1,NULL,thread1,(void *)&param);
    assert(ret!=-1);
    }

if(c_fd[1]==-1)

    {printf("client2 is connect error");}
    else
    { ret =pthread_create(&t2,NULL,thread2,(void *)&param);assert(res!=-1);}





    }

    return 0;

}

qt上位机:
S3O(U$)ZD)(~QX7O7ST9O(C.png
运行效果:

~~76E}}Y2S7WUSGI5`SPIZE.png

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
弹性计算 安全 Linux
esc使用体验心得
在我看来云服务器有以下优点:省力,不需要专门花时间去维护服务器的硬件,看服务器是否运行正常;稳定,这应该是最主要的有点;安全,做web开发最怕的当然是攻击,所以选择大厂的服务器,自然是最香的;省钱,这当然也是很重要的,尤其对于我们学生用户还是很友好的,爆赞!
|
Docker Windows 容器
阿里云ESC使用体验
我使用ESC云服务器完成了所学的博客搭建,又在其上使用docker搭建了集群用于大数据流处理实验,非常方便快捷
138 0
ESC使用体验
自己近段时间在阿里云的一些使用体验
ESC使用体验
|
数据可视化 Java 关系型数据库
关于阿里云ESC的使用体验
简单的说就是阿里云的服务器为我带来了很多的便利,不用在去更新什么yum配置,很方便,上来就能用。
|
弹性计算 Linux
关于esc的使用体验
很高兴在这里发表一篇文章来跟大家分享我最近使用ECS的体验感受,希望大家喜欢,我是一名计算机网络专业的学生,因为自己所学的方向是需要用服务器来进行实际操作的,所以我在我老师的推荐下,在阿里云上找到了一ECS服务器来给结合项目实操。而却学生党还可以免费领,只需完成上面的任务就可以,实在很人性化啦!这个飞天加速计划·高校学生在家实践活动,太为学生党贴心策划了,很感谢这次活动。我在这款服务器里使用使我学习上也得到一定帮助,因为我们学校的课程也开设了linux课程,学的也不是很巩固,同时也了解了一些云服务器的知识,想要拥有一台服务器。通过对ECS云服务器的使用让我巩固了Linux命令,同时也掌握了一些
|
弹性计算 安全 Linux
esc使用体验心得esc使用体验心得
在我看来云服务器有以下优点:省力,不需要专门花时间去维护服务器的硬件,看服务器是否运行正常;稳定,这应该是最主要的有点;安全,做web开发最怕的当然是攻击,所以选择大厂的服务器,自然是最香的;省钱,这当然也是很重要的,尤其对于我们学生用户还是很友好的,爆赞!
|
移动开发 物联网 Go
SAP Business ByDesign 和支付宝与钉钉集成的一个原型开发案例
SAP Business ByDesign 和支付宝与钉钉集成的一个原型开发案例
SAP Business ByDesign 和支付宝与钉钉集成的一个原型开发案例
|
3天前
|
SQL 人工智能 安全
【灵码助力安全1】——利用通义灵码辅助快速代码审计的最佳实践
本文介绍了作者在数据安全比赛中遇到的一个开源框架的代码审计过程。作者使用了多种工具,特别是“通义灵码”,帮助发现了多个高危漏洞,包括路径遍历、文件上传、目录删除、SQL注入和XSS漏洞。文章详细描述了如何利用这些工具进行漏洞定位和验证,并分享了使用“通义灵码”的心得和体验。最后,作者总结了AI在代码审计中的优势和不足,并展望了未来的发展方向。
|
11天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
18天前
|
存储 人工智能 缓存
AI助理直击要害,从繁复中提炼精华——使用CDN加速访问OSS存储的图片
本案例介绍如何利用AI助理快速实现OSS存储的图片接入CDN,以加速图片访问。通过AI助理提炼关键操作步骤,避免在复杂文档中寻找解决方案。主要步骤包括开通CDN、添加加速域名、配置CNAME等。实测显示,接入CDN后图片加载时间显著缩短,验证了加速效果。此方法大幅提高了操作效率,降低了学习成本。
2775 8