zoukankan      html  css  js  c++  java
  • [置顶] Unix 网络编程系列05

    请转载者,尊重作者(xiaobin)的劳动成果!

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

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

    1. 建立socket通信

    2. 初始化servaddr

        2.1 置0

        2.2 设置协议族

        2.3 设置端口

        2.4 设置ip地址为本机所有地址/任意地址

    3. 绑定socket的端口

    4. 监听socket

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

    循环执行:

    5. 接受连接

    6. 发送数据

    7. 关闭连接


    第二个运行实例!

    daytimetcpsrv.c

    #include "./lib/unp.h"
    #include <time.h>
    
    #define LISTEN_QUEUE 20
    
    int main(int argc, char **argv)
    {
      int     listenfd, connfd;
      struct  sockaddr_in servaddr;
      char    buff[MAXLINE];
      time_t  ticks;
      
      listenfd = socket(AF_INET, SOCK_STREAM, 0);
      
      bzero(&servaddr, sizeof(servaddr));
      servaddr.sin_family = AF_INET;
      servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
      servaddr.sin_port = htons(13);
      
      bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr));
    
      listen(listenfd, LISTEN_QUEUE);
      
      for ( ; ; ) {
        connfd = accept(listenfd, (struct sockaddr *) NULL, NULL);
        
        time(&ticks);
        snprintf(buff, sizeof(buff), "%s\n", ctime(&ticks));
        
        write(connfd, buff, strlen(buff));
        
        close(connfd);
      }
    }

    编译:

    root@xiaobin-desktop:/home/xiaobin/temp# cc daytimetcpsrv.c -o daytime1.out

    运行:

    root@xiaobin-desktop:/home/xiaobin/temp# ./daytime1.out

    -------------------------------------------------------------------------end-------

    测试:

    使用windows的telnet来测试我们程序是否运行正常,

    在命令提示符中输入:telnet 192.168.101.128 13

    (其中192.168.101.128为服务器ip地址;13既是上面程序中我们使用的端口号)


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


  • 相关阅读:
    关于课程设计、毕业设计的一些总结与思考
    分享一个Panda C-60 维修心得
    未能加载文件或程序集“SuperMap.Data.dll”
    VS2017环境下安装AO10.2的方法
    SQL Server连接错误1326
    VMWare虚拟机中CPU过高的问题
    Apktool编译找不到“keyboardNavigationCluster”
    Aspose.Cells设置单元格格式
    谷歌Chrome浏览器无法安装插件的解决方法
    Global Mapper如何加载在线地图
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3028404.html
Copyright © 2011-2022 走看看