zoukankan      html  css  js  c++  java
  • 简易web服务器

    1.设定服务器端口号,获取服务器IP地址。

    2.创建服务器监听socket     socket();

    3. 连接服务器socket和端口号      bind();

    4. 让服务器socket处于监听状态     listen();

    5. 在循环中调用accept(),获取客户端连接的socket。accept()默认阻塞,直到有客户端连接后返回连接套接字。

    6. 创建线程处理该套接字,使用recv()从socket中读取字符。

    7. 解析HTTP请求报文,如

      首先是请求方法,请求URL,HTTP协议版本。

      Host:主机名

      8.将请求路径转换为本地路径,将文件的副本通过send()发送。

      9.响应报文

      起始行:HTTP协议版本,状态码。

      首部:文件类型,文件长度。

      10.发送完毕后使用close()结束通信。

      1.udp服务器

      • 创建一个socket,用函数socket();
      • 设置socket属性,用函数setsockopt();* 可选
      • 绑定IP地址、端口等信息到socket上,用函数bind();
      • 循环接收数据,用函数recvfrom();
      • 关闭网络连接

      2.udp客户端

      • 创建一个socket,用函数socket();
      • 设置socket属性,用函数setsockopt();* 可选
      • 绑定IP地址、端口等信息到socket上,用函数bind();* 可选
      • 设置对方的IP地址和端口等属性;
      • 发送数据,用函数sendto();
      • 关闭网络连接;

      3.tcp服务器

      • 创建一个socket,用函数socket();
      • 设置socket属性,用函数setsockopt(); * 可选
      • 绑定IP地址、端口等信息到socket上,用函数bind();
      • 开启监听,用函数listen();
      • 接收客户端上来的连接,用函数accept();
      • 收发数据,用函数send()和recv(),或者read()和write();
      • 关闭网络连接;
      • 关闭监听;

      4.tcp客户端

      • 创建一个socket,用函数socket();
      • 设置socket属性,用函数setsockopt();* 可选
      • 绑定IP地址、端口等信息到socket上,用函数bind();* 可选
      • 设置要连接的对方的IP地址和端口等属性;
      • 连接服务器,用函数connect();
      • 收发数据,用函数send()和recv(),或者read()和write();
      • 关闭网络连接;
  • 相关阅读:
    [Swift]LeetCode32. 最长有效括号 | Longest Valid Parentheses
    [Swift]LeetCode31. 下一个排列 | Next Permutation
    [Swift]LeetCode30. 与所有单词相关联的字串 | Substring with Concatenation of All Words
    [Swift]LeetCode29. 两数相除 | Divide Two Integers
    时光轴的设计理念
    ITFriend开发日志20140611
    ITFriend开发日志20140611
    高中生活--第7篇–我为什么不交作业
    高中生活--第7篇–我为什么不交作业
    ITFriend网站内测公测感悟
  • 原文地址:https://www.cnblogs.com/wshr007/p/11503034.html
Copyright © 2011-2022 走看看