五月五号日报

今日学习内容

1Web服务器

开发一个处理一个HTTP请求的Web服务器。Web服务器应该接受并解析HTTP请求,然后从服务器的文件系统获取所请求的文件,创建一个由响应文件组成的HTTP响应消息,前面是首部行,然后将响应直接发送给客户端。如果请求的文件不存在于服务器中,则服务器应该向客户端发送“404 Not Found”差错报文。

from socket import *
serverSocket = socket(AF_INET,SOCK_STREAM)#创建TCP套接字
serverSocket.bind(('',6789))
serverSocket.listen(1)#最大连接数为1
while True:
    print("准备提供服务")
    connectionSocket,addr=serverSocket.accept() # 接收到客户连接请求后,建立新的TCP连接套接字
    try:
        message=connectionSocket.recv(1024)#获取客户发送的报文,1024为缓冲区大小
        filename=message.split()[1]#获得URI,去掉首部'/'就是文件名
        f=open(filename[1:])
        outputdata=f.read()
        header = ' HTTP/1.1 200 OK\nConnection: close\nContent-Type: text/html\nContent-Length: %d\n\n' % (
            len(outputdata))
        connectionSocket.send(header.encode())
        for i in range(0,len(outputdata)):
            connectionSocket.send(outputdata[i].encode())#把文件各行数据塞到response中
        connectionSocket.close()#关闭数据连接
    except IOError:
        header=' HTTP/1.1 404 Found'
        connectionSocket.send(header.encode())
        connectionSocket.close()
serverSocket.close()

效果如下

2Go语言中的包(Package)

比如fmt,os等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分(一些底层的除外)内置于 Go 本身。

2.1regexp

package main

import (
    "fmt"
    "regexp"
    "strconv"
)

func main() {
    searchIn := "John: 2578.34 William: 4567.23 Steve: 5632.18"
    pat := "[0-9]+.[0-9]+" //正则

    f := func(s string) string {
        v, _ := strconv.ParseFloat(s, 32)
        return strconv.FormatFloat(v*2, 'f', 2, 32)
    }

    if ok, _ := regexp.Match(pat, []byte(searchIn)); ok {
        fmt.Println("Not found!")
    }
    re, _ := regexp.Compile(pat)
    //将匹配到的部分替换为"##.#"
    str := re.ReplaceAllString(searchIn, "##.##")
    fmt.Println(str)

    //参数为函数时
    str2 := re.ReplaceAllStringFunc(searchIn, f)
    fmt.Println(str2)
}

2.2锁和sync

在一些复杂的程序中,通常通过不同线程执行不同应用来实现程序的并发。当不同线程要使用同一个变量时,经常会出现一个问题:无法预知变量被不同线程修改的顺序!经典的做法是一次只能让一个线程对共享变量进行操作。当变量被一个线程改变时(临界区),我们为它上锁,直到这个线程执行完成并解锁后,其他线程才能访问它。

2.3自定义包和可见性:

当写自己包的时候,要使用短小的不含有 _(下划线)的小写单词来为文件命名。这里有个简单例子来说明包是如何相互调用以及可见性是如何实现的。

package main

import (
    "fmt"
    "foo"
)

func main() {
    var test1 string
    test1 = bar.ReturnStr()
    fmt.Printf("ReturnStr from package1: %s\n", test1)
    fmt.Printf("Integer from package1: %d\n", bar.Pack1Int)
}
package bar

var Pack1Int int = 42
var PackFloat = 3.14

func ReturnStr() string {
    return "Hello main!"
}

3Linux磁盘与文件系统管理

系统管理员重要任务之一就是管理好自己的磁盘文件系统,每个分区槽不可太大也不能太小,太大会造成磁盘容量浪费,太小会产生文件无法存储问题。

原文地址:https://www.cnblogs.com/swtczb/p/11632642.html

时间: 2024-10-31 12:11:18

五月五号日报的相关文章

四月二十五号日报

今日学习内容 Go语言的控制结构 1.1if-else结构:关键字if和else之后左大括号{必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号 } 必须和 else-if 关键字在同一行.这两条规则都是被编译器强制规定的. if condition { //代码 } else if condition{ //代码 }else{ //代码 } if可以包含一个初始化语句(比如给一个变量赋值)这种写法具有固定的格式(在初始化语句后必须加上分号),但要注意的是,使用简短

五月七号日报

今日学习内容 Go语言中的接口与反射 1.1接口概念:通过它可以实现很多面向对象的特性.接口提供了一种方式来 说明 对象的行为 package main import "fmt" type stockPosition struct { ticker string sharePrice float32 count float32 } func(s stockPosition) getValue() float32{ return s.sharePrice*s.count } type c

五月六号日报

今日学习内容 1Go语言中的结构(struct)与方法(method) 结构体是复合类型,当需要定义一个类型,它由一系列属性组成,每个属性都有自己的类型和值的时候,就应该使用结构体,它把数据聚集在一起. 1.1结构体定义 type identifier struct { field1 type1 field2 type2 } 使用 new 函数给一个新的结构体变量分配内存,它返回指向已分配内存的指针:var t *T = new(T) package main import "fmt"

四月十五号日报

今日学习内容 Go语言的了解与Linux下开发环境的搭建 起源:Go语言起源于2007年,并于2009年正式对外发布.Go语言的设计者是三位著名的IT工程师,Robert Griesemer,参与开发 Java HotSpot 虚拟机:Rob Pike:Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言:Ken Thompson:贝尔实验室 Unix 团队成员,C 语言.Unix 和 Plan 9 的创始人之一,

长征五号世界排名第几?为什么本次发射如此重要?

腾讯科技 文/林文杰 本次长征五号遥三与实践二十号任务为 2019 年中国航天发射收尾,且又是长征五号复飞后第一次发射,因此备受瞩目. 长征五号是在 2002 年原国防科工委确定的"一个系列.两种发动机.三个模块"思路下诞生的,2006 年立项批复.所谓的一个系列是研发一系列运载火箭:两种发动机指的是 120 吨推力的 YF-100 和 50 吨推力的 YF-77 发动机:三个模块是研发出长征五号.六号和七号,近地轨道运载能力上限达到 25 吨,同步轨道运载能力上限达到 14 吨.结果

恭喜长征五号遥三运载火箭发射,浅谈编程语言在军事方面的运用!

恭喜长征五号遥三成功发射!来聊聊军事系统都是用什么语言编写的长征五号运载火箭,是中国运载火箭升级换代的重要工程,作为中国首型大推力无毒无污染液体火箭,创新难点多.技术跨度大.复杂程度高.这次遥三的成功,意味着中国具备发射更重航天器,或将航天器送向更远深空的能力,是实现未来探月工程三期.首次火星探测等国家重大科技专项和重大工程的重要基础和前提.接下来随便聊一点军事系统运用了什么编程语言1. ADA语言ADA语言是美国军用标准计算机语言,不光是导弹的飞控软件,在其它国家的相关军事领域也应用很多,据称

四月十一号日报

静态URL与动态URL的了解 动态页面的特征: 以ASP.PHP.JSP.ASP.net.Perl.或CGI等编程语言制作 不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页 内容存在于数据库中,根据用户发出的不同请求,其提供个性化的网页内容 内容不是存在于页面上,而是在数据库中,从而大大降低网站维护的工作量 动态页面的特征: 静态页面的URL链接是以.html.htm..shtml..xml为链接后缀 静态页面是存在于服务器上的一个文件,每个网页都是一个独立的文件 客

四月十二号日报

今日学习内容 关于TCP与UDP服务 TCP服务模型是面向连接的服务:在应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息.也提供可靠的数据传送服务:通信进程能够依靠TCP,无差错,按适当顺序交付所有发送的数据.TCP协议还具有拥塞控制机制. UDP是一种不提供不必要服务的轻量级运输协议,它仅提供最小的服务,UDP是无连接的,因此在两个进程通信前没有握手过程.UDP协议提供一种不可靠的数据传送服务,也就是说到大接收进程的报文也有可能是乱序的,UDP没有拥塞控制机制. Linu

QBXT 二月五号整理

给你一列数, 询问和最大的子串. N<=10^6 1 // N <=10^6 2 #include<cstdio> 3 #include<iostream> 4 using namespace std; 5 int n,a[105200]; 6 int maxSubstr(){ 7 int sum=0,minsum=0,answer=0; 8 for(int i=1;i<=n;++i){ 9 sum+=a[i]; 10 minsum=min(sum,minsum)