如何编写Linux下的客户机_服务器软件(2)
文章作者 100test 发表时间 2007:03:14 16:29:43
来源 100Test.Com百考试题网
服务器:
1.打开一个已知的监听端口。
2.在监听端口上监听客户机的连接请求,当有一客户机请求连接时建立连接线路并返回通信文件描述符。
4.父进程创建一子进程,父进程关闭通信文件描述符并继续监听端口上的客户机连接请求。
3.子进程通过通信文件描述符与客户机进行通信,通信结束后终止子进程并关闭通信文件描述符。
客户机:
1.向指定的服务器主机及端口发出连接请求,请求成功将返回通信文件描述符。
2.通过通信文件描述符与服务器进行通信。
3.通信完毕后关闭通信文件描述符。
Linux的以下几个库函数是网络程序设计的核心部分,它们分别是:
(1)socket
调用方式:
#include
#include
int socket(int domain,int type,int protocol). |
简要说明:
此函数为通信创建一个端口,正常调用将返回一个文件描述符,错误调用将返回-1。domain参数有两种选择:AF_UNIX与AF_INET,其中AF_INET为Internet通信协议。type参数也有两种选择:SOCK_STREAM用于TCP,SOCK_DGRAM用于UDP。protocol参数通常为0。可通过下列代码为基于TCP协议的Internet通信建立套接口传输端口:
#include
#include
#include
int sock.
if((sock=socket(AF_INET,SOCK_STREAM,0))==-1)
perror("Could not create socket"). |
(2)bind
调用方式:
#include
#include
int bind(int s,const struct sockaddr *address,size_t address_len). |