Unix开发,unix基础教程

  Unix开发,unix基础教程

  在第一个实例我们已经编写了客户端程序,本篇编写他的姊妹篇-服务器端程序。

  基本上,服务器端程序既是客户端程序的"反"程序!

  1.建立窝通信

  2.初始化servaddr

  2.1 置0

  2.2 设置协议族

  2.3 设置端口

  2.4 设置互联网协议(互联网协议的缩写)地址为本机所有地址/任意地址

  3.绑定窝的端口

  4.监听窝

  以上2.4, 3, 4是为客户端的连接做准备的。

  循环执行:

  5.接受连接

  6.发送数据

  7.关闭连接

  第二个运行实例!

  daytimetcpsrv.c

  #包含 ./lib/unp.h

  #包含时间。h

  #定义监听队列20

  int main(int argc,char **argv)

  int listenfd,connfd

  结构sockaddr _ in servaddr

  char buff[MAXLINE];

  时间_t滴答;

  listenfd=socket(AF_INET,SOCK_STREAM,0);

  bzero( servaddr,sizeof(serv addr));

  servaddr.sin _ family=AF _ INET

  服务器地址。sin _ addr。s _ addr=htonl(在addr _ ANY中);

  服务器地址。sin _ port=htons(13);

  bind(listenfd,(struct sockaddr *) servaddr,sizeof(servaddr));

  listen(listenfd,LISTEN _ QUEUE);

  for(;) {

  connfd=accept(listenfd,(struct sockaddr *) NULL,NULL);

  时间(滴答);

  snprintf(buff,sizeof(buff), %sn ,ctime(ticks));

  write(connfd,buff,strlen(buff));

  关闭(conn FD);

  }

  编译:

  root @肖斌-桌面:/home/肖斌/temp # cc daytimetcpsrv。c-o白天1。在外

  运行:

  root @肖斌-桌面:/home/肖斌/temp# ./daytime1.out

  -结束-

  测试:

  使用窗子的远程登录来测试我们程序是否运行正常,

  在命令提示符中输入:远程登录192.168.101.128 13

  (其中192.168.101.128为服务器互联网协议(互联网协议的缩写)地址;13既是上面程序中我们使用的端口号)

  如果出现图中红色方框中的内容,既表示服务器端程序运行正常。

Unix开发,unix基础教程