zoukankan      html  css  js  c++  java
  • 网络编程实战1

    需要在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 即可编译运行。亲测可用。

  • 相关阅读:
    .net中的自动文档生成工具
    Using JQuery to perform Ajax calls in ASP.NET MVC
    ajax GIF动画的几个网站
    使用linq插入数据库所在服务器的时间
    关于C# WebService的创建与调用
    VS2008安装AjaxControlToolkit(AJAX扩展)
    Crossdomain calls and server side debugging of Silverlight application
    IIS7: WCF Services .SVC do not work
    ConfigSource attribute on system.serviceModel section
    How to Disable Visual Styles to Increase Performance
  • 原文地址:https://www.cnblogs.com/zuotongbin/p/13126343.html
Copyright © 2011-2022 走看看