ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

网络编程实战1

2020-06-14 18:51:41  阅读:237  来源: 互联网

标签:实战 文件 套书 推荐 编程 网络 TCP server 链接


需要在linux平台上实现代码。
安装虚拟机。我安装的是ubuntu。
安装clion。网上有流程,百度clion在linux下的安装步骤。我装的是2020.1版的。主要步骤就是下载,解压,然后运行.sh文件,一直next就好了。
.sh文件是什么?脚本文件,一般都是bash脚本,一系列命令的集合。

代码参考(复制)的是https://github.com/yingcheng-zhou/socket-reading-and-writing
评论里看到这位大佬根据老师的课程写的,我先参考,跑通。

打开安装好的clion,创建一个c的可执行项目。在project下创建一个server.c,一个client.c文件。
两个文件中都有main函数。使用cmake编译链接。要修改CMakeLists.txt。一个target下只能有一个main函数,所以要写两行。注意两个c文件属于不同的target。
但是run的时候只能一次run一个。所以run完server后,可以选择client,再run一下。这时候两个main函数就都执行了。server.c中zconf.h文件没找到,我注释掉了。结果没影响。

cmake_minimum_required(VERSION 3.16)
project(untitled C)

set(CMAKE_C_STANDARD 99)
add_executable(server server.c)
add_executable(client client.c)

补充下CMake相关的基础知识。参考知乎5分钟理解make/makefile/cmake/nmake
gcc可以简单认为是编译器,当我们只有一个源文件时,可以使用命令直接编译,但是当我们有很多源文件时,仍然使用它就很麻烦了。于是有了Make。
Make是一个智能批处理工具,通过调用Makefile文件中用户指定的命令来进行编译和链接。编写Makefile文件仍然很麻烦,换个平台又得重新修改,于是有了CMake。
CMakeLists.txt是CMake生成Makefile所依赖的规则。
preview
程序由.c到编译器编译成.o文件,再到链接器链接目标代码生成.exe文件。

书籍推荐(来源于极客时间)
我希望你可以通过这个专栏更好地了解网络编程,但是深入的学习还需要你自行去找更多的资料。我在这里给你推荐一些书,这些书是各个领域的经典。
C 语言入门方面,我推荐 《C 程序设计语言》,这里是豆瓣链接,你可以看下大家的评价以及他们的学习方式: https://book.douban.com/subject/1139336/
UNIX 网络编程方面,强烈推荐 Stevens 大神的两卷本《UNIX 网络编程》,其中第一卷是讲套接字的,第二卷是讲 IPC 进程间通信的。这套书也随书配备了源代码,你如果有兴趣的话,可以对代码进行改写和调试。豆瓣链接在此: https://book.douban.com/subject/1500149/这套书的卷一基本上面面俱到地讲述了 UNIX 网络编程的方方面面,但有时候稍显啰嗦,特别是高性能高并发这块,已经跟不上时代,但你可以把注意力放在卷一的前半部分。这套书翻译了好几版,就我的体验来说,比较推荐杨继张翻译的版本。
TCP/IP 协议方面,当然是推荐 Stevens 的大作《TCP/IP 详解》, 这套书总共有三卷,第一卷讲协议,第二卷讲实现,第三卷讲 TCP 事务。我在这里推荐第一卷,第二卷的实现是基于 BSD 的代码讲解的,就不推荐了。我想如果你想看源码的话,还是推荐看 Linux 的,毕竟我们用的比较多。第三卷涉及的内容比较少见,也不推荐了。这套书各个出版社翻译了好多版本,你可以去豆瓣自行查看哪个版本评分比较高。《TCP/IP 详解 卷 1:协议》豆瓣链接如下:https://book.douban.com/subject/1088054/
最后除了书籍外,还有一个非常好的了解 TCP 的方法,那就是查看 RFC 文档,对于有一定英文能力的同学来说,可以说是一个捷径。RFC 最大的好处可以帮我们了解 TCP 发展的背景和脉络。

评论区网友supermouse
使用 Windows 系统 + CLion 的同学,可以在 Win10 应用商店中下载一个 Ubuntu 版本的 Windows 子系统,即 WSL,然后在 CLion 中配置工程的环境为 WSL 即可编译运行。亲测可用。

标签:实战,文件,套书,推荐,编程,网络,TCP,server,链接
来源: https://www.cnblogs.com/zuotongbin/p/13126343.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有