用C语言编写Socket程序本文的目的在于为初学者提供一个快速的入门指导,用来迅速熟悉用C语言来编写Internet网络应用程序
本文假设读者已经具备了C语言的基本知识和语法,并且读者有使用Uinx/Linux的经验
尽管Uinx/Linux的Socket编程与在Windows下的有一些不同的地方,但是在此我并不想展开
另外,本文所有的程序都在RedHat5
2下编译通过,并且在glibc2
7和libc5
12两种环境下都没有问题
现在就开始我们的教程吧:)
对一个程序员而言,sockets和底层的文件描述符非常类似(可以在sockets里使用read()和write()函数),尽管建立一个socket比打开,读取和写入一个文件更为麻烦,但这是由于网络连接比单纯的本地硬盘的读写复杂的多所造成的
通常,sockets用来实现客户机/服务器对
服务器的任务是监听某个特定的端口,当接收到客户端的服务请求时完成相应的服务;客户机的任务是请求服务器完成事先设定好的服务
作为入门级的文章,我们在这里不会使用所有的socket类型和功能,但是我们会向读者提供足够的信息
现在,就让我们开始吧
=+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+==+=建立一个socket:socket()你所要学的socket编程的第一件事就是用socket()建立一个socket:--------#include#includeintsocket(intaf,inttype,intprotocol)-------'intaf'代表地址族或者称为socket所代表的域,通常有两个选项:AF_UNIX-只在单机上使用
AF_INET-可以在单机或其他使用DARPA协议(UDP/TCP