-
之前写
Http Server
的时候,遇到这样一种情况:当客户端
POST
一段JSON
数据到服务器时,服务器要读取出所有的Http Request Body
的内容。于是便直接用BufferedReader
读取,直到EOF
。但总是会出现SocketTimeoutException
。很明显,是由于客户端发完数据之后,并没有关闭输出流,而是等待服务器段发送Connection:[keep-alive|closed]
字段来判断是否复用连接。所以在服务器端等待EOF
时,客户端也在等待服务器的Response
,由此而引发超时。
-
使用Flask+Gunicorn+Supervisor+Nginx把应用部署到服务器时,出现了编码问题。
File "/srv/www/biu/venv/lib/python3.4/site-packages/werkzeug/datastructures.py", line 2653, in save dst = open(dst, 'wb') UnicodeEncodeError: 'ascii' codec can't encode characters in position 56-60: ordinal not in range(128)
文件名的确有中文,但是在本地测试的时候没有问题啊!在本地采用的是'UTF-8'进行编码,但是在服务器怎么就是'ASCII'了?
-
本文介绍通过搭建git服务器实现提交代码到
master
分支时完成网站应用代码的部署。创建SSH-Public-Key
本地计算机需要创建SSH公钥与服务器通信。使用
ssh-keygen
生产公钥以及私钥。$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/finalize/.ssh/id_rsa): demo Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in demo. Your public key has been saved in demo.pub. The key fingerprint is: 6d:07:2c:56:48:aa:0d:08:ad:c1:db:ce:0f:bf:4e:6b finalize@junjie The key's randomart image is: +--[ RSA 2048]----+ |o. .... | |.o.. ..o | | o+ . . o o | |.. . + . o . | | o . . S o . | | + . . | | +. | | .E. | | o+. | +-----------------+
然后在
ssh
的配置文件中加入demo.pub
的配置$ vi ~/.ssh/config $ chmod 600 ~/.ssh/config
-
语法分析其实就是按照事先定义好的语法,对词法分析器返回的
Token
与语法元素进行匹配,若是发现不匹配则报错。本程序采用递归下降语法分析器进行分析。那么该如何与预定义的语法进行匹配呢?这就要用到
FIRST
集合与FOLLOW
集合了。其实也并没有辣么理论化,只需要根据当前读取到的Token
判断应该进入哪个处理函数就行了。比如读到while
就知道要进入while
的处理函数;读到if
就知道要处理if
了。进入处理函数之后,我们定义一个
expect(Token)
函数来期待接下来的Token
。传入期待的Token
,要是与接下来读取到的Token
匹配,就继续往下分析,要是不匹配,就抛出异常,停止分析。
-
先将Cookie及用户写入
config.json
中,格式如下{ "shuoshuo":"<shuoshuo_cookie>", "friends":"<friends_cookie>", "user":"<your_qq_number>", "host_user":"<the_owner_qq>" }
然后
python shuoshuo.py config.json
示例
-