美文网首页
C++入门到放弃(一),第一个服务器

C++入门到放弃(一),第一个服务器

作者: chanming | 来源:发表于2016-11-13 15:34 被阅读0次

    前言

    很多大学生学完C语言后就不知所措。不知道接下来可以学什么。《Unix环境高级编程》《Unix网络编程》等书籍虽然经典,但对于不少的同学来说都比较的枯燥,写这系列的文章讲述自己学C编程的经历吧。

    第一个服务器程序HelloWorld

    功能:

    服务器启动后,每有一个新的链接进来,服务器都输出“HelloWorld”。

    结果:

    当有一个连接进来的时候,服务器输出Hello World.



    我们通过netstat -apn | grep 8098 (我指定的端口可以看到链接的详情) 这里ESTABLISHED表示已经建立连接。这个与TCP状态有关,后面我们再进一步来讲解TCP的状态,这一部分的确比较枯燥无味。


    代码:

    我向来认为,对于新手来说,最好的方式莫过于看着代码进行讲解了。我们来看一下代码。

    • 7-13行,这边是socket函数的一个wrapper,我们只是包裹了socket方法而已,socket(int domain, int type, int protocol) 这是一个生成一个socket的一个函数,里面的三个参数一般是一个组合。我们可以通过man socket进行了解。在第45行,我们申请了一个TCP,IPv4的Socket。
    • 15-21行,bind函数,当我们用socket函数申请一个socket后,他并没有赋值给一个本地的地址,低48-52行我们将本地8098端口绑定该socket。
    • 23-29行,listen函数,使用listen的socket将会等待Accept连接。
    • 31-37行,accept函数,当我们调用accept函数时,程序将被阻塞,系统会返回等待列表中的第一个给我们。
      这个之间我们可能带着诸多疑问,例如各个常量与参数,但我认为,对于新手来说,可能很多的细节问题可以等待后面进一步了解。

    状态图

    运行与测试

    环境:ubuntu14.10
    编译:g++ -g server.cpp
    我们用telnet模拟客户端连接,后面我们会继续写客户端。

    相关文章

      网友评论

          本文标题:C++入门到放弃(一),第一个服务器

          本文链接:https://www.haomeiwen.com/subject/fjhcpttx.html