UNIX网络编程之源代码的编译和使用

2023-11-16

UNIX网络编程入门

  对于想学习网络编程的来说,《UNIX网络编程》这书肯定是不二选择。所谓实践是检验真理的唯一标志,特别是对于编程来讲,再多的理论经验也比不过code一次。《UNIX网络编程》这本书提供连源码下载,第三本版的源码可点击这里下载
  但是源码归源码,下载了如果不会使用那也是瞎扯。对于这份源码的使用可以参考源码文件夹下的README文件,不过那个确实是英文版本,这里就用中文做一个简单的翻译介绍.
  

  1. 进入源码根目录,执行./configure 命令
  2. 进入lib文件夹(cd lib)然后执行make命令
  3. 进入libfree文件夹(cd ../libfree),然后执行make命令
  4. 进入libgai文件夹(cd ../libgai),然后执行make命令
  5. 返回根目录(cd ..),回到unpv13e目录
  6. 拷贝生成的链接库到系统库目录 sudo cp libunp.a /usr/lib
    sudo cp libunp.a /usr/lib32[以后编译代码的时候加上-lunp链接我们的库。]
  7. 进入intro文件夹(cd ../intro),这个文件夹里的代码是书上第一部分,简介的内容,我们尝试启动编译一个时间获取的服务器程序和客户的程序make daytimetcpsrv,make daytimetcpcli
  8. 8.

linux现在因为安全问题,各个发行版本默认是不开daytime服务的. 第一个例子实际上是两个程序,客户端和服务端,你很有可能只运行了客户端,没有运行服务端程序。服务端程序在书上第12页……你不会尚还没有看到那里吧?PS:由于要打开端口,所以服务端程序需要用root权限执行,所以你可以先sudo ./daytimetcpsrv (如果本身就是root就不需要sudo)然后再开一个终端运行 ./daytimetcpcli 127.0.0.1 就可以看到返回的时间了

-**个人实验效果图:
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UNIX网络编程之源代码的编译和使用 的相关文章

  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 仅当重复行与模式匹配时才删除它们

    这个问题 https stackoverflow com questions 1444406 how can i delete duplicate lines in a file in unix有一个很好的答案说你可以使用awk seen
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 如何使用 UNIX shell 计算字母在文本文件中出现的次数?

    我有几个文本文件 我想计算每个字母在每个文件中出现的次数 具体来说 我想使用 UNIX shell 来执行此操作 形式为 cat file 做东西 有没有办法让 wc 命令来执行此操作 grep char o filename wc l
  • 使用带有curl 的内部字段分隔符

    当我做 ls IFS l 我得到了我期望的输出 当我做 curl IFShttp www google com 我不 我是否误解了内部字段分隔符 如何在不使用任何空格字符的情况下运行curl 命令 您需要将变量放在大括号内 否则 shell
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at

随机推荐

  • 【数据挖掘】数据清洗

    数据挖掘 数据清洗 数据挖掘一般流程 数据挖掘一般流程 需求分析 数据挖掘任务分类 1 预测 分类 回归 2 聚类 文档归类 3 关联性分析 购物篮分析 4 异常检测 信用卡欺诈 获取数据 sql linux 爬虫 数据清洗 主要 去重 缺
  • Halcon极坐标变换检测缺陷

    一 原图 二 通过极性变换拉直 三 检测缺陷 This example checks bottle necks for defects First the bottle is detected with basic morphology e
  • ARouter 之注解 @JvmField 和 @Autowired

    文章目录 1 定义 2 使用 3 源码分析 4 为什么 Autowired 要搭配 JvmFiled 同时使用 1 定义 在 Activity 进行数据传递一般都会通过 getIntent putxxx getxxx 方法 在 Fragme
  • 【华为OD机试真题 python】查找重复代码【2022 Q4

    题目描述 查找重复代码 小明负责维护项目下的代码 需要查找出重复代码 用以支撑后续的代码优化 请你帮助小明找出重复的代码 重复代码查找方法 以字符串形式给定两行代码 字符串长度 1 lt length lt 100 由英文字母 数字和空格组
  • s2.ubuntu搭建s3c2440平台arm-linux-gcc交叉编译工具链安装+资源下载

    交叉编译工具包arm linux gcc 3 4 5 glibc 2 3 6 tar bz2 zip 蓝奏云 文件实际后缀是 bz2 下载后去掉 zip后缀 然后放入Ubuntu系统 具体步骤 1 复制交叉编译链的包到Ubuntu中 这里我
  • Spring学习(五):Spring中注入一些细节

    1 字面值 字面值 可用字符串表示的值 可以通过
  • Misc

    我可是黑客 用winehx打开 下拉到最后 moctf e4sy 1ma9e m1sc 假装安全 用kali的binwalk分离 打开记事本 mcfCrflyS1eot eul ld 扫扫出奇迹 用QR Research直接扫 或者用Ste
  • Linux 4G 通信实验

    目录 4G 网络连接简介 高新兴ME3630 4G 模块实验 ME3630 4G 模块简介 ME3630 4G 模块驱动修改 1 Linux内核添加代码 USB设备信息 2 Linux内核添加代码 添加ECM支持程序 3 配置使能Linux
  • 计算机怎么快速查找应用,win10系统如何快速查找应用?win10系统快速查找应用的方法...

    win10电脑经常会安装各种程序应用 因为没有添加到桌面 所以这个时候很难找到 如果一个一个程序查找很浪费时间 有什么快速查找应用的方法 针对此疑问 小编和大家说说win10系统快速查找应用的方法 具体方法如下 1 首先你要找到 开始菜单
  • Vue3+Element-Plus 实现表单中搜索功能 三五

    1 当用户在表单搜索框中 输入要搜索的用户名 点击搜索按钮后 查找到相对应的用户数据 2 实现搜索功能的步骤 2 1 首先 使用v model 指令 将文本输入框的数据与 data 中的数据做双向绑定 2 2 其次 为搜索按钮绑定单击事件
  • Java中Math类中的常用方法

    Java中Math类中的常用方法 代码实例 public class Demo1 Math public static void main String args System out println Math PI System out
  • 使用备份工具mysqldump备份数据库

    MySQL自带的备份工具mysqldump 可以很方便的对MySQL进行备份 通过该命令工具可以将数据库 数据表或全部的库导出为SQL脚本 便于该命令在不同版本的MySQL服务器上使用 例如 当需要升级MySQL服务器时 可以先使用mysq
  • Java 读取jar内包资源文件和读取jar包外资源文件

    Java 读取jar包内资源文件 读取jar 包内资源文件application properties InputStream appPropertiesInputStream ApplicationPropertiesHolder cla
  • U-Net 模型改进和应用场景研究性综述

    U Net综述 1 文章介绍 2 U Net介绍 3 结构改进 4 非结构改进 4 1 预处理 数据增强 4 2 训练 数据归一化 4 3 训练 激活函数 4 4 训练 损失函数 4 5 结构改进总结 5 U Net应用场景 5 1 视网膜
  • PAN和MS融和综述(pansharpening)

    PAN和MS融和综述 pansharpening 一 基于成分替代的图像融和 1 基于IHS变换的图像融合方法 IHS方法是将原始多光谱图像从RGB空间变换到IHS空间 然后用高分辨率图像或用不同投影方式得到的待融合图像替代I分量 在IHS
  • spring的InitializingBean接口、DisposableBean接口

    本文介绍spring中与bean有关的一些接口 afterPropertiesSet afterPropertiesSet 方法是 Spring 框架中的一个初始化方法 主要用于在 Bean 实例化和属性注入完成后执行一些初始化操作 具体来
  • windows 7 系统安装

    环境 workstation 10 虚拟机 GHOST windows 7 32位 今天安装系统 碰到一些问题 在此记录 问题一是分区后 重启黑屏的问题 解决方案 问题二 点击安装到第一分区 自动跳转到dos工具界面问题 解决方案 问题三
  • Qt之QLabel

    简述 QLabel提供了一个文本或图像的显示 没有提供用户交互功能 一个QLabel可以包含以下任意内容类型 内容 设置 纯文本 使用setText 设置一个QString 富文本 使用setText 设置一个富文本的QString 图像
  • HR人员和岗位关联日期问题

    离职日期是4月3号 但4月1 2号的数据在GET PERNR 就查不到 原因是人员和岗位关联日期在3月31号就结束了 所以选中组织结构后找不到数据了 表HRP1001可以查看 O组织 S岗位 P人员 修改 PO13 gt 关系显示 gt 找
  • UNIX网络编程之源代码的编译和使用

    UNIX网络编程入门 对于想学习网络编程的来说 UNIX网络编程 这书肯定是不二选择 所谓实践是检验真理的唯一标志 特别是对于编程来讲 再多的理论经验也比不过code一次 UNIX网络编程 这本书提供连源码下载 第三本版的源码可点击这里下载