UNIX网络编程之三:基本套接字编程

unp第三章主要介绍了基本套接字编程函数。主要有:socket(),bind(),connect(),accept(),listen()等。
本博文也直接进入正题,对这几个函数进行剖析和讲解。

一、基本套接字函数

在《计算机网络》和《TCP/IP详解》中,我们经常讨论TCP/IP的工作流程,连接建立的三次握手和连接断开的四次挥手等,那么这些如何体现在程序中呢?我们如何来运用这些理论知识于实践之中呢?下面我们来看看套接字编程中客户和服务器进程之间的一些典型事件的时间表。

如图,服务器首先启动,稍后客户进程启动,它通过connect()函数试图连接服务器,这个阶段完成三次握手,然后read()和write()完成客户和服务器之间的数据传输,之后客户进程调用close()来请求断开连接,服务器收到后读取EOF,接着关闭连接,这时完成四次挥手的过程。下面就图中的每个函数,细细剖析他们的用途。

阅读更多
UNIX网络编程之二:套接字编程简介

unp第二章主要将了TCP和UDP的简介,这些在《TCP/IP详解》和《计算机网络》等书中有很多细致的讲解,可以参考本人的这篇博客【计算机网络 第五版】阅读笔记之五:运输层,这篇博客就不再赘述。

本篇博客主要记录套接字编程API,从一些基本的API来一步一步了解套接字网络编程。

一、套接字地址结构

大多数的套接字函数都以一个指向套接字地址结构的指针作为参数。每个协议簇都定义了自己的套接字地址结构。
套接字地址结构均以sockaddr_开头,并以对应每个协议簇的唯一后缀结尾。

ipv4套接字地址结构

阅读更多
UNIX网络编程之一:代码环境搭建

粗略的阅读过《TCP/IP详解》和《计算机网络(第五版)》后,开始啃这本《UNIX网络编程卷一:套接字联网API》,目前linux下的编程不算太了解,在阅读的过程中也会有很多障碍,希望自己坚持下去。

一、源代码的下载和编译

源代码下载地址:http://www.unpbook.com/ , 下载下来得到unpv13e.tar.gz文件

编译步骤:
解压缩zxvf unpv13e.tar.gz

1
tar zxvf unpv13e.tar.gz

进入unpv13e文件夹中

1
2
cd /unpv13e
./configure//如果权限不够可以chmod改权限

编译lib文件

1
2
3
4
5
6
cd lib
make
cd ../libfree
make
cd ../libgai
make

阅读更多