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)

    #2,返回http格式的数据给浏览器
    #2.1准备发送给浏览器的数据 ---header
    response = "HTTP/1.1 200 OK\r\n"#正常浏览器\r\n代表的是换行
    response += "\r\n"
    #2.2准备发送给浏览器的数据
    response += "hahaha"
    new_socket.send(response.encode("utf-8"))

    #3.关闭套接字
    new_socket.close()

def main():
    '''用来完成整体的控制'''
    #1.创建套接字
    tcp_server_socket = socket(AF_INET, SOCK_STREAM)

    # 2.绑定本地信息
    port = 7891
    address = ('', port)
    tcp_server_socket.bind(address)

    # 3.变为监听,将主动套接字变为被动套接字
    tcp_server_socket.listen(128)

    #等待连接
    while True:
        client_socket, clientAddr = tcp_server_socket.accept()
        # 接收对方发送过来的数据
        service_client(client_socket)

    # 关闭监听套接字
    tcp_server_socket.close()

if __name__ == "__main__":
    main()

关于作者

个人博客网站
个人GitHub地址
个人公众号:

原文地址:https://www.cnblogs.com/simon-idea/p/11399234.html

时间: 2024-08-25 13:41:36

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

第十三节 返回固定页面的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,则再次链接需要转换端口,不然端口会被占用等待客户端的反馈

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

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

通过Web Api 和 Angular.js 构建单页面的web 程序

在传统的web 应用程序中,浏览器端通过向服务器端发送请求,然后服务器端根据这个请求发送HTML到浏览器,这个响应将会影响整个的页面,比如说:用户通过一个连接导航到一个页面,会发送一个请求到服务器端,接下来服务器将会发送一个新的页面给浏览器. 但是在单页面应用程序中,整个页面只是在浏览器一开始请求的时候才会加载,接下来的请求,下来的交互请求都是通过ajax 来完成的,这就意味着只有部分的页面会更新,并不需要去加载整个的页面,这就减少了对用户操作的响应时间,从而使用户有一个更流畅的体验.但是在传统

&lt;摘录&gt;详谈高性能TCP服务器的开发

对于开发一款高性能服务器程序,广大服务器开发人员在一直为之奋斗和努力.其中一个影响服务器的重要瓶颈就是服务器的网络处理模块.如果一款服务器程序不能及时的处理用户的数据.则服务器的上层业务逻辑再高效也是徒劳.所以一个服务器程序的网络处理能力直接影响到整个服务器的性能, 本文主要介绍在windows平台下开发高性能的网络处理模块以及自己在设计开发服务器网络模块遇到的一些问题和开发心得.本篇主要介绍TCP服务器的设计, 下一篇将主要介绍UDP服务器的设计. 众所周知, 对于服务器来说windows下网

一步一步开发Game服务器(三)加载脚本和服务器热更新(二)完整版

上一篇文章我介绍了如果动态加载dll文件来更新程序 一步一步开发Game服务器(三)加载脚本和服务器热更新 可是在使用过程中,也许有很多会发现,动态加载dll其实不方便,应为需要预先编译代码为dll文件.便利性不是很高. 那么有么有办法能做到动态实时更新呢???? 官方提供了这两个对象,动态编译源文件. 提供对 C# 代码生成器和代码编译器的实例的访问. CSharpCodeProvider 提供一下方法加载源文件, // 基于包含在 System.CodeDom.CodeCompileUnit

CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 3.在一个非浮动元素<div>中存在一个浮动元素,当浮动元素高于元素本身的时候,内容就会溢出<div>中,解决方案如下: A:在</div>介绍之前添加一个换行,并且添加一个类<br class=”clear”/>,之后创建一个样式br.class{clear

关于量产型页面的css样式开发心得

量产型页面? 为了方便讨论,有必要就什么是"量产型页面"达成一致.这里所说的量产型页面是指采用通用模块和组件拼凑出来的页面,典型的如:网站管理员后台的页面,这些页面大多是由.ui-box.ui-form.ui-data.ui-btn等通用的模块和组件组装出来的. 量产型页面一般数量较多,而且还会随着网站功能的扩展而不断增加,所以对于这类页面的开发应该优先考虑的是开发效率和文件的组织管理.本文专门就开发此类页面时关于CSS方面的处理做一下心得分享. 我们知道,给元素应用样式无非就只有两种

[Windows Phone 8开发]使用HttpWebRequest和HttpWebResponse向服务器发送Json数据(POST方法)

public string szJson = ""; byte[] json; UploadClass up = new UploadClass(); public ValidatePage() { InitializeComponent(); } private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { //我做了一个实现上传某些关键的Json数据,返回服务器Appid的功能,类似新浪微博

nodejs 开发,手把手开始第一个服务器程序(一)

此文章适合有HTML 和css .js 基础的小伙伴看哦 如果能帮到你,荣幸之至 文章纯手打,如有纰漏欢迎下方留言 写在前面: 127.0.0.1 : 回环地址,每一台电脑都有该ip,指向当前使用的电脑 nodejs 中的 js 与 浏览器中 js 的区别: 浏览器中 js :ECMAScript 核心 + DOM + BOM Node 中的 js :ECMAScript 核心 + 全局成员 + 模块系统(系统模块.第三方模块.自定义模块) 全局成员: setTimeout.setInterva