第十三节 返回固定页面的http服务器

import socket

def main():

    """简单web服务器"""

    # 1、创建套间字
    web_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    web_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    # 如果强制服务端先调用close,则再次链接需要转换端口,不然端口会被占用等待客户端的反馈
    web_socket.bind((‘192.168.0.106‘,8080))
    web_socket.listen(128)
    # 128是指最大运行客户端的链接数

    while True:
        resp_socket, resp_addr = web_socket.accept()
        recv_data = resp_socket.recv(1024)
        print(recv_data)
        resp_data = ‘HTTP/1.1 200 OK\r\n‘ + "\r\n" +‘hahaha‘
        # 浏览器识别的换行为\r\n
        resp_socket.send(resp_data.encode(‘utf-8‘))
        resp_socket.close
    web_socket.close()

if __name__ == ‘__main__‘:
    main()

原文地址:https://www.cnblogs.com/kogmaw/p/12602492.html

时间: 2024-10-03 07:58:45

第十三节 返回固定页面的http服务器的相关文章

Web服务器-服务器开发-返回固定页面的HTTP服务器(3.3.1)

目录 1.注意 2.代码 关于作者 @ 1.注意 浏览器解析的时候偶\r\n才算一个换行符 发送的str要编码,这里使用的是utf8 其他的都和上一篇没有什么区别 这里主要返回的是固定的网址 2.代码 from socket import * def service_client(new_socket): '''为这个客户端返回数据''' # 1.接收浏览器发送过来的请求,即http请求 #GET /HTTP/1.1 # ... request = new_socket.recv(1024) #

springMVC后台返回到页面的json数据,含有/"号的问题处理

<bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <!--在消息转换器里面,添加此段代码--> <value>ap

一个简单的NodeJs静态页面的web服务器

主要功能 1 显示www文件夹下静态html或文本类型的文件. 2 缺省访问文件功能. 通过config.js的defaultfile属性设置 3 如果文件夹下没有缺省文件,显示文件夹下文件列表 4 如果请求的url没有找到相关资源返回404.html页面 源文件上传到 https://github.com/dangkei/nodewebserver

返回固定数据的web服务器

import socket def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求报文,解析,返回 """ # 服务器接收客户端的请求报文 request = socket_con.recv(4096).decode() print(request) # 服务器拼接响应报文并回复 response_line = 'HTTP/1.1 200 OK\r\n' response_head = 'Serve

[BS-10] 统一设置app所有页面的“返回”按钮样式

统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然后在自定义类中重写pushViewController: animated:方法即可. //重写navC的pushVC方法,以便统一设置push进来的vc的左侧“返回”按钮 - (void)pushViewController:(UIViewController *)viewController a

Welcome to Swift (苹果官方Swift文档初译与注解十二)---77~83页(第二章)

Optionals (可选类型) 当一个值可能有值,也可能没有值,这种情况你可以使用可选类型.可选类型的意思是: 有个一个值,它等于x,或者,根本没有任何值. 注意点: 可选类型的概念在C和OC中都是没有的.在OC中最相似的情况是,一个方法返回nil或者返回一个对象.OC中返回nil意思是没有合法的对象.然而,这只能针对对象,不能用在结构体,基本 数据类型,或者枚举值.对于这些类型,OC的方法只能返回固定的某个值(比如NSNotFound)来提示没有某个值.这要去方法的调用者清楚的记得返回的固定

Welcome to Swift (苹果官方Swift文档初译与注解二十二)---148~153页(第三章--集合类型)

在数组的指定索引位置插入一个元素,可以调用数组的insert(atIndex:)方法: shoppingList.insert("Maple Syrup", atIndex: 0) // shoppingList now contains 7 items // "Maple Syrup" is now the first item in the list” 例子中的insert方法在数组的开始位置(索引为0)插入一个新的元素,元素的值是"Maple Syr

Welcome to Swift (苹果官方Swift文档初译与注解二十四)---163~170页(第三章完--第四章 流程控制)

Mutability of Collections (可变集合) 字典和数组都是在一个集合里储存多个值.如果你创建数组或字典后赋值给一个变量,那么这个集合就是可变的( mutable).这就意味着你在创建这个集合之后,依然可以改变这个集合的 大小,添加元素到集合里或者删除已有的元素.相反地,如果你创建的数组或者字典赋值给一个常量,那么这个集合就是不能修改的,也就是说字典或者数组是不可变的(immutable) 对于字典,不可变就意味着你不能替换里面已有的键值对,一个不可变的字典在它一创建出来就是

定义页面的Dispose方法:[before]unload事件启示录

前言 最近实施的同事报障,说用户审批流程后直接关闭浏览器,操作十余次后系统就报用户会话数超过上限,咨询4A同事后得知登陆后需要显式调用登出API才能清理4A端,否则必然会超出会话上限. 即使在页面上增添一个登出按钮也无法保证用户不会直接关掉浏览器,更何况用户已经习惯这样做,增加功能好弄,改变习惯却难啊.这时想起N年用过的window.onbeforeunload和window.onunload事件. 本文记录重拾这两个家伙的经过,以便日后用时少坑. 为网页写个Dispose方法 C#中我们会将释