热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

搭完一个Debian编程环境并开发了一个简单socket程序后的总结

搭完一个Debian编程环境并开发了一个简单socket程序后的总结--Linux发行版技术-Debian信息,下面是详情阅读。
1.安装Debian的时候由于没有经验所以浪费了很多时间,重装了许多次。

安装了3次Debian系统,第一次磁盘空间不足没有安装成功,第二次直接选择了Debian的默认设置,安装了一个带界面的,第三次把desk top选项去掉,安装了一个不带界面的Debian。

2.由于对linux的了解有限遇到问题有时也不得不重新安装

安装完Debian后,无法连接网络,修改了/etc/network/interfaces文件中的ip地址,网关,和dns,但是还是不行。怀疑是因为安装的时候系统自动配置网络没有成功,重新安装了一遍系统,然后在配置网络处选择手动配置,安装后可以联网。

3.安装一些常用的软件和命令

3.1安装gcc命令

从网上下载了一个gcc安装文件,但是按照它给的提示总安装不成功,提示找不到c编译器。最后没有办法,使用了一个有局限性的方法:联网状态apt-get install gcc

3.2安装其他的一些常用命令

安装ssh命令 apt-get install ssh
安装make命令 apt-get install make
安装bzip2命令 apt-get install bzip2 //用于解压.bz2文件
...

4.ip,网关等信息都存放在/etc/network/的interfaces文件中个格式如下:

allow-hotplug eth0
iface eth0 inet static
address 192.168.1.223
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 202.99.96.68

5.参考网上的例子编写了一个简单的socket程序

实现了服务器和客户端的通信,当客户端连接服务器的时候,服务器就会发送消息到客户端并在客户端显示

5.1 编完了以后简单的学习了一下gcc的用法,然后对server.c和client.c文件进行编译 有一些小错误,最后解决了。

5.2 运行server.o client.o

./server.o
./client.o 127.0.0.1

服务器正常监听,但客户端连接服务器总失败。由于急于把程序跑起来,所以查了大半天也没把错误找出来,通过别人的指点发现原来是由于运算符优先级的问题而导致的socket没有初始化成功。这让我非常的郁闷,但是回头想想,我确实不知道那两个运算符优先级的高低,以后参考别人的程序的时候一定要仔细。

6.程序正常运行起来以后,开始学习makefile的写法,打算用make命令来编译我的工程

关于makefile的写法网上有很多帮助,简单的makefile写法马上就学会了。
makeserver

server:server.o
gcc -o server server.o
server.o:server.c
gcc -c server.c

clean:
rm server server.o

使用make clean命令可以清除文件

7.结束

希望我的经历对大家能有所帮助。

作者:happystone1984
推荐阅读
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 本文详细介绍了如何在 CentOS 7 及其衍生发行版(如 Red Hat, Oracle, Scientific Linux 7)上安装和完全卸载 GitLab。包括安装必要的依赖关系、配置防火墙、安装 GitLab 软件包以及常见问题的解决方法。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文介绍了在 CentOS 7 系统中如何查看所有活动进程及其运行时间。通过使用 `netstat` 和 `ps` 命令,您可以轻松获取进程的详细信息,包括启动时间、用户、终端和命令等。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • Dense Matrix Inversion Results in Segmentation Fault: Causes and Solutions ... [详细]
author-avatar
vijay
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有