b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

UNIX网络编程(unp)源码下载和编译

电脑杂谈  发布时间:2019-11-25 00:02:08  来源:网络整理

unix网络高级编程_unix环境高级编程 3 下载_unix网络编程源码运行

该连接为UNIX网络编程,卷一,第三版的源代码。

把下载好的代码,放到UNIX系统中。或者直接在你的UNIX系统中使用以下的命令下载:

curl http://www.unpbook.com/unpv13e.tar.gz > /dev/zero

下载完成后会发现文件unpv13e.tar.gz文件,使用以下的命令解压该文件:

unix网络高级编程_unix环境高级编程 3 下载_unix网络编程源码运行

tar -xvf unpv13e.tar.gz

解压后会看到多了一个名字就叫unpv13e的目录,进入至该目录中,准备开始编译。

怎么编译呢?作者终于在目录中包括了一个README文件,告诉我们怎么编译和使用。

这里写图片描述

unix网络高级编程_unix网络编程源码运行_unix环境高级编程 3 下载

使用vi或vim打开README文件,可以发现如下的内容:

QUICK AND DIRTY
===============
Execute the following from the src/ directory:
    ./configure    # try to figure out all implementation differences
    cd lib        # build the basic library that all programs need
    make          # use "gmake" everywhere on BSD/OS systems
    cd ../libfree  # continue building the basic library
    make
    cd ../libroute # only if your system supports 4.4BSD style routing sockets
    make          # only if your system supports 4.4BSD style routing sockets
    cd ../libxti  # only if your system supports XTI
    make          # only if your system supports XTI
    cd ../intro    # build and test a basic client program
    make daytimetcpcli
    ./daytimetcpcli 127.0.0.1
If all that works, you're all set to start compiling individual programs.
Notice that all the source code assumes tabs every 4 columns, not 8.
MORE DETAILS
============
5.  If you need to make any changes to the "unp.h" header, notice that it
    is a hard link in each directory, so you only need to change it once.
6.  Go into the "lib/" directory and type "make". This builds the library
    "libunp.a" that is required by almost all of the programs.  There may
    be compiler warnings (see NOTES below).  This step is where you'll find
    all of your system's dependencies, and you must just update your cf/
    files from step 1, rerun "config" and do this step again.
6.  Go into the "libfree/" directory and type "make". This adds to the
    "libunp.a" library.  The files in this directory do not #include
    the "unp.h" header, as people may want to use these functions
    independent of the book's examples.
8.  Once the library is made from steps 5 and 6, you can then go into any
    of the source code directories and make whatever program you are
    interested in.  Note that the horizontal rules at the beginning and
    end of each program listing in the book contain the directory name and
    filename.
    BEWARE: Not all programs in each directory will compile on all systems
    (e.g., the file src/advio/recvfromflags.c will not compile unless your
    system supports the IP_RECVDSTADDR socket option).  Also, not all files
    in each directory are included in the book.  Beware of any files with
    "test" in the filename: they are probably a quick test program that I
    wrote to check something, and may or may not work.
NOTES
-----
- Many systems do not have correct function prototypes for the socket
  functions, and this can cause many warnings during compilation.
  For example, Solaris 2.5 omits the "const" from the 2nd argument
  to connect().  Lots of systems use "int" for the length of socket
  address structures, while Posix.1g specifies "size_t".  Lots of
  systems still have the pointer argument to [sg]etsockopt() as a
  "char *" instead of a "void *", and this also causes warnings.
- SunOS 4.1.x: If you are using Sun's acc compiler, you need to run
  the configure program as
        CC=acc CFLAGS=-w CPPFLAGS=-w ./configure
  Failure to do this results in numerous system headers (<sys/sockio.h>)
  not being found during configuration, causing compile errors later.
- If your system supports IPv6 and you want to run the examples in the
  book using hostnames, you must install the latest BIND release.  You
  can get it from ftp://ftp.vix.com/pub/bind/release. All you need from
  this release is a resolver library that you should then add to the
  LDLIBS and LDLIBS_THREADS lines.
- IPv6 support is still in its infancy.  There may be differences
  between the IPv6 sockets API specifications and what the vendor
  provides.  This may require hand tweaking, but should get better
  over time.
- If your system supports an older draft of the Posix pthreads standard,
  but configure detects the support of pthreads, you will have to disable
  this by hand.  Digital Unix V3.2C has this problem, for example, as it
  supports draft 4, not the final draft.
  To fix this, remove wrappthread.o from LIB_OBJS in "Make.defines" and
  don't try to build and run any of the threads programs.
COMMON DIFFERENCES
------------------
These are the common differences that I see in various headers that are
not "yet" at the level of Posix.1g or X/Open XNS Issue 5.
- getsockopt() and setsockopt(): 5th argument is not correct type.
- t_bind(): second argument is missing "const".
- t_connect(): second argument is missing "const".
- t_open(): first argument is missing "const".
- t_optmsmg(): second argument is missing "const".
- If your <xti.h> defines the members of the t_opthdr{} as longs,
  instead of t_uscalar_t, some of the printf formats of these value
  might generate warnings from your compiler, since you are printing
  a long without a corresponding long format specifier.

README文件早已写得更明白了unix网络编程源码运行,在源码目录上,第一步运行以下的命令,该命令会去检测你的平台能否支持这种用途,并生成相应的配置头文件config.h等等。

./configure

unix网络编程源码运行_unix环境高级编程 3 下载_unix网络高级编程

第二步编译所有程序就会使用的基础库:

cd lib
make

第三步继续编译基础库,该基础库不依赖项目中的代码,可以独立起来帮其他项目使用:

cd ../libfree
make

unix环境高级编程 3 下载_unix网络编程源码运行_unix网络高级编程

可选的编译内容,该部分是可选的,当你的平台支持以下的功能时能够编译成功:

cd ../libroute # only if your system supports 4.4BSD style routing sockets
make          # only if your system supports 4.4BSD style routing sockets
cd ../libxti  # only if your system supports XTI
make          # only if your system supports XTI

最后,编译introduce章节的代码unix网络编程源码运行,并尝试运行:

cd ../intro    # build and test a basic client program
make daytimetcpcli
./daytimetcpcli 127.0.0.1

注意:在运行./daytimetcpcli 127.0.0.1命令可能会出现connect error: Connection refused的出错,是因为对应的服务没有启动,但是没关系,你的程序尚未可以运行出来了。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-131203-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...