Linux系统(Ubuntu和树莓派)的远程操作练习

news2025/4/12 12:49:09

文章目录

  • 一、实验一
    • (一)实验准备
    • (二)Ubuntu 下的远程操作
    • (三)树莓派下的远程操作
    • (四)思考
  • 二、实验二
    • 1.talk程序
    • 2. C 编写 Linux 进程间通信(IPC)聊天程序

一、实验一

(一)实验准备

1.双方应保证处于同一个局域网内
2.关闭防火墙
(否则别人将不能 ping 通自己,具体说明请参考:windows-关闭防火墙)
3.配置虚拟机
​ (1)网桥模式配置
​ 查询本机网络连接中的网卡信息,当前本地连接的什么网络就选择哪张网卡(这里我用的无线网络)

在这里插入图片描述
(2)打开虚拟机,设置网络连接为:桥接模式
在这里插入图片描述
(3)在虚拟机菜单:编辑==>虚拟机网络编辑
在这里插入图片描述
在这里插入图片描述
(4)将VMnet0的网卡改为3(1)步windows下使用的网卡

在这里插入图片描述

(5)在控制台输入如下代码
在这里插入图片描述

(6)查看Ubuntu的网卡名称和虚拟机IP
网络名称:一般为ens33
虚拟机IP:192.168.167.109
子网掩码为:255.255.255.0
而此时树莓派IP为:192.168.167.177,windows电脑IP为:192.168.167.142

说明:虚拟机、树莓派和windows电脑在同一个局域网内,都是连的手机热点。
在这里插入图片描述

(二)Ubuntu 下的远程操作

1.创建一个新的用户并将其添加进sudo组,将分配的 IP 地址交给其他同学,让其他同学用 putty 或 xshell 连接

sudo adduser classmate1
sudo usermod -aG sudo classmate1

切换用户:使用终端命令:su - 用户名(需输入密码)
在这里插入图片描述
安装并启动 SSH 服务:

sudo apt update
sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh

使用putty登录classmate1
在这里插入图片描述
2.Xming 图形窗口访问
安装 Xming 和XLanuch,打开 XLanuch,默认一直下一页。
在这里插入图片描述
3.配置putty

(1)在配置选项 connection -> SSH -> X11 forwarding 处,将 Enable X11 forwarding 打钩
在这里插入图片描述
(2)然后 session->host name 处填写服务器IP 地址(即Ubuntu的IP地址),再点击 open 连接远程服务器

(3)连接成功后,输入命令 set DISPLAY=xxx.xxx.xxx.xxx:0 ,(xxx.xxx.xxx.xxx是你所使用电脑windows下配置的IP地址)
在这里插入图片描述

(三)树莓派下的远程操作

1.只需要打开树莓派的vnc服务,然后连接过去即可
在这里插入图片描述
2.新建一个用户classmate2

sudo adduser classmate2

用户名:“classmate2”,密码:“123456”

在这里插入图片描述
3.Xming 图形窗口访问(具体操作如上所述,只需将服务器IP 地址修改为树莓派用户为 classmate2IP 地址)
在这里插入图片描述

(四)思考

X窗口协议与远程桌面VNC-viewer协议有什么差异?
X窗口协议与远程桌面VNC-viewer协议有什么差异?
在这里插入图片描述

二、实验二

1.talk程序

(1)方式一:邀请别人
邀请名称为 zhangsc 的用户进行对话
在这里插入图片描述
在这里插入图片描述
(2)被别人邀请
我接受zhangsc的邀请
在这里插入图片描述

(3)聊天过程

在这里插入图片描述

2. C 编写 Linux 进程间通信(IPC)聊天程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>

#define SOCKET_PATH "/tmp/chat_socket"

int main() {
    int server_fd, client_fd;
    struct sockaddr_un addr;
    char buffer[1024];

    // 创建 UNIX 域套接字
    server_fd = socket(AF_UNIX, SOCK_STREAM, 0);
    if (server_fd == -1) {
        perror("socket error");
        exit(EXIT_FAILURE);
    }

    // 绑定套接字到文件路径
    memset(&addr, 0, sizeof(struct sockaddr_un));
    addr.sun_family = AF_UNIX;
    strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path) - 1);

    unlink(SOCKET_PATH); // 确保路径可用
    if (bind(server_fd, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
        perror("bind error");
        exit(EXIT_FAILURE);
    }

    // 监听并接受连接
    if (listen(server_fd, 5) == -1) {
        perror("listen error");
        exit(EXIT_FAILURE);
    }

    printf("Server waiting for connection...\n");
    client_fd = accept(server_fd, NULL, NULL);
    if (client_fd == -1) {
        perror("accept error");
        exit(EXIT_FAILURE);
    }

    // 双向聊天循环
    while (1) {
        printf("You: ");
        fgets(buffer, sizeof(buffer), stdin);
        write(client_fd, buffer, strlen(buffer) + 1);

        read(client_fd, buffer, sizeof(buffer));
        printf("Client: %s", buffer);
    }

    close(client_fd);
    close(server_fd);
    unlink(SOCKET_PATH);
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>

#define SOCKET_PATH "/tmp/chat_socket"

int main() {
    int sockfd;
    struct sockaddr_un addr;
    char buffer[1024];

    // 创建并连接套接字
    sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
    if (sockfd == -1) {
        perror("socket error");
        exit(EXIT_FAILURE);
    }

    memset(&addr, 0, sizeof(struct sockaddr_un));
    addr.sun_family = AF_UNIX;
    strncpy(addr.sun_path, SOCKET_PATH, sizeof(addr.sun_path) - 1);

    if (connect(sockfd, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
        perror("connect error");
        exit(EXIT_FAILURE);
    }

    // 双向聊天循环
    while (1) {
        read(sockfd, buffer, sizeof(buffer));
        printf("Server: %s", buffer);

        printf("You: ");
        fgets(buffer, sizeof(buffer), stdin);
        write(sockfd, buffer, strlen(buffer) + 1);
    }

    close(sockfd);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2331115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高效创建工作流,可实现类似unreal engine的蓝图效果,内部使用多线程高效执行节点函数

文章目录 前言&#xff08;Introduction&#xff09;开发环境搭建&#xff08;Development environment setup&#xff09;运行&#xff08;Run test&#xff09;开发者&#xff08;Developer&#xff09;编译&#xff08;Compile&#xff09;报错 前言&#xff08;Introductio…

Design Compiler:语法检查工具dcprocheck

相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 dcprocheck是一个在Design Compiler存在于安装目录下的程序&#xff08;其实它是一个指向snps_shell的符号链接&#xff0c;但snps_shell可以根据启动命令名判…

aws(学习笔记第三十八课) codepipeline-build-deploy-github-manual

文章目录 aws(学习笔记第三十八课) codepipeline-build-deploy-github-manual学习内容&#xff1a;1. 整体架构1.1 代码链接1.2 全体处理架构 2. 代码分析2.1 创建ImageRepo&#xff0c;并设定给FargateTaskDef2.2 创建CodeBuild project2.3 对CodeBuild project赋予权限&#…

深度学习|注意力机制

一、注意力提示 随意&#xff1a;跟随主观意识&#xff0c;也就是指有意识。 注意力机制&#xff1a;考虑“随意线索”&#xff0c;有一个注意力池化层&#xff0c;将会最终选择考虑到“随意线索”的那个值 二、注意力汇聚 这一部分也就是讲第一大点中“注意力汇聚”那个池化…

京东店铺托管7*16小时全时护航

内容概要 京东店铺托管服务的*716小时全时护航模式&#xff0c;相当于给商家配了个全年无休的"运营管家"。专业团队每天从早7点到晚11点实时盯着运营数据和商品排名&#xff0c;连半夜流量波动都能通过智能系统秒级预警。这种全天候服务可不是单纯拼人力——系统自动…

遵循IEC62304YY/T0664:确保医疗器械软件生命周期合规性

一、EC 62304与YY/T 0664的核心定位与关系 IEC 62304&#xff08;IEC 62304&#xff09;是国际通用的医疗器械软件生命周期管理标准&#xff0c;适用于所有包含软件的医疗器械&#xff08;如嵌入式软件、独立软件、移动应用等&#xff09;&#xff0c;其核心目标是确保软件的安…

20250408-报错:pre_state = state同更新现象

项目场景&#xff1a; 基于强化学习解决组合优化问题 问题描述 # POMO Rolloutstate, reward, done self.env.pre_step()# next_state statewith autocast():while not done:# 执行动作并获取新状态和奖励selected, prob self.model(state)# 更新状态:因为self.env.step(s…

如何在服务器里部署辅助域

辅助域&#xff08;Additional Domain Controller&#xff0c;ADC&#xff09;是指在现有的Active Directory&#xff08;活动目录&#xff09;架构中&#xff0c;新增一个或多个域控制器以提高目录服务的可用性和可靠性。以下是辅助域的定义、功能和应用场景的详细说明&#x…

GNSS有源天线和无源天线

区别 需要外部供电的就是有源天线&#xff0c;不需要外部供电的是无源天线。 无源天线 一般就是一个陶瓷片、金属片等&#xff0c;结构简单&#xff0c;成本低廉&#xff0c;占用空间及体积小&#xff0c;适合于强调紧凑型空间的导航类产品。 不需要供电&#xff0c;跟设备直…

欧税通香港分公司办公室正式乔迁至海港城!

3月20日&#xff0c;欧税通香港分公司办公室正式乔迁至香港油尖旺区的核心商业区海港城!左手挽着内地市场&#xff0c;右手牵起国际航道——这波乔迁选址操作堪称“地理课代表”! 乔迁仪式秒变行业大联欢!感谢亚马逊合规团队、亚马逊云、阿里国际站、Wayfair、coupang、美客多…

ETPNav:基于演进拓扑规划的连续环境视觉语言导航模型

1、现有工作的缺陷&#xff1a; 最近&#xff0c;出现了一种基于模块化航路点的方法的新兴趋势&#xff0c;该方法将复杂任务分为航路点生成、子目标规划和导航控制&#xff1a; &#xff08;1&#xff09;在每个决策循环中&#xff0c;代理使用预训练的网络来预测附近的几个…

Spring Cloud LoadBalancer负载均衡+算法切换

目录 介绍核心功能负载均衡启动两个支付服务订单模块引入依赖LoadBalanced 注解启动订单服务测试结果 负载均衡算法切换总结 介绍 Spring Cloud LoadBalancer 是 Spring Cloud 提供的客户端负载均衡解决方案&#xff0c;提供更现代化的 API 和更好的 Spring 生态系统集成。它支…

游戏引擎学习第210天

回顾并为今天的工作做准备 今天我们&#xff0c;进行一些编码工作。这部分的编码内容对那些对代码架构感兴趣的人非常有帮助&#xff0c;我认为今天的编码内容会很有教育意义&#xff0c;尤其是在展示一些代码转化的过程中&#xff0c;希望大家能够从中获得一些启发。 接下来…

UML类图综合实验三补档

1.使用简单工厂模式模拟女娲(Nvwa)造人(Person)&#xff0c;如果传入参数“M”&#xff0c;则返回一个Man对象&#xff0c;如果传入参数“W”&#xff0c;则返回一个Woman对象&#xff0c;用Java语言实现该场景。现需要增加一个新的Robot类&#xff0c;如果传入参数“R”&#…

WinForm真入门(11)——ComboBox控件详解

WinForm中 ComboBox 控件详解‌ ComboBox 是 WinForms 中一个集文本框与下拉列表于一体的控件&#xff0c;支持用户从预定义选项中选择或直接输入内容。以下从核心属性、事件、使用场景到高级技巧的全面解析&#xff1a; 一、ComboBox 核心属性‌ 属性说明示例‌Items‌下拉…

DeepSeek底层揭秘——《推理时Scaling方法》技术对比浅析

4月初&#xff0c;DeepSeek 提交到 arXiv 上的最新论文正在 AI 社区逐渐升温。 笔者尝试对比了“关于推理时Scaling”与现有技术&#xff0c;粗浅分析如下&#xff1a; 与LoRA的对比 区别&#xff1a; 应用场景&#xff1a;LoRA是一种参数高效微调方法&#xff0c;主要用于在…

Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(四)

Android Coli 3 ImageView load two suit Bitmap thumb and formal&#xff0c;Kotlin&#xff08;四&#xff09; 对 Android Coli 3 ImageView load two suit Bitmap thumb and formal&#xff0c;Kotlin&#xff08;三&#xff09;-CSDN博客 进行完善&#xff0c;注意完善 …

Adam优化器研究综述

摘要 Adam优化器&#xff08;Adaptive Moment Estimation&#xff09;是一种广泛应用于深度学习的优化算法&#xff0c;通过自适应学习率加速梯度下降过程。本文从Adam的定义、算法原理、优势与局限性、应用场景及变体等方面进行调研&#xff0c;结合学术文献和实践经验&#x…

在 macOS 上连接 PostgreSQL 数据库(pgAdmin、DBeaver)

在 macOS 上连接 PostgreSQL 数据库 pgAdmin 官方提供的图形化管理工具&#xff0c;支持 macOS。 下载地址&#xff1a;https://www.pgadmin.org/ pgAdmin 4 是对 pgAdmin 的完全重写&#xff0c;使用 Python、ReactJs 和 Javascript 构建。一个用 Electron 编写的桌面运行时…

2018年真题

数学基础 一、 &#xff08;共4分&#xff09;用逻辑符号表达下列语句&#xff08;论域为包含一切事物的集合&#xff09; 1、&#xff08;2分&#xff09;集合A的任一元素的元素都是A的元素 经过对图片文字的识别与逻辑分析&#xff0c;结果如下&#xff1a; 符号定义&…