《TCP/IP高效编程:改善网络程序的44个技巧》源码在Linux上的编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《TCP/IP高效编程:改善网络程序的44个技巧》源码在Linux上的编译相关的知识,希望对你有一定的参考价值。

为了先完整编译通过,需要以下几个步骤:

1、进入linux子目录,执行 make。(此步骤为打补丁。)

2、返回上一级目录,打开文件 simplec.c,添加头文件 #include <stdio.h>。

3、对以下文件中的 static void set_address 去掉 static :

  connectto.c

  tcpsink.c

3、在根目录执行make。

 

戡误一:

在做 shutdownc/tcpecho 的实验时,客户端 shutdownc 总是输出错误:

shutdownc: fputs failed

跟书上说的“server disconnected”完全不同。

 

相关代码在 shutdown.c 第50行处:

  if ( fputs( lin, stdout ) )
    error( 1, errno, "fputs failed" );

查 fputs 的 man 手册,可知:

  fputs() return a non-negative number on success, or EOF on error

所以要改成:

            if ( fputs( lin, stdout ) == EOF)
                error( 1, errno, "fputs failed" );

重新编译,再做实验,输出与书中一致:

shutdownc: server disconnected

 

以上是关于《TCP/IP高效编程:改善网络程序的44个技巧》源码在Linux上的编译的主要内容,如果未能解决你的问题,请参考以下文章

网络编程的基本概念,TCP/IP协议简介

TCP/IP网络编程系列之三(初级)

关于Java网络编程

Java 网络编程

Socket网络编程

java socket编程