关闭
当前搜索:

网络编程(24)—— linux中write和read函数的阻塞试验

刚刚接触网络编程时,很容易被客户端和服务器之间的交互搞晕,例如各种函数的阻塞和非阻塞就让人头疼。例如在我的印象中linux中用于用于对文件描述符进行读写的write()函数和read()函数是非阻塞函数,但是在一次网络通信的试验中发现它们又是阻塞的,后来man了一下write和read,发现其文档中都有下面一句话: ERRORS        EAGAIN The file descr...
阅读(2498) 评论(3)

【git】常用的git命令

1、添加本地更新 git add . 2、提交本地更新 git commit -m '更新说明' 3、提交到远传库 git push origin master 4、从远传库更新 git pull origin master 5、从远传库克隆 git  clone 远传库的项目地址 6、放弃本地所有更新(未commit) git checkout ....
阅读(537) 评论(0)

【C++面向对象】C++中运算符重载的两种方式

我们知道在C++中可以通过重载运算符的方式,使类实现类似于基本类型的运算符操作,如+、-、*、/等等。本文介绍这种重载运算符的两种方法。 我们先自定义一个类,来作为本次研究的对象: class Integer { public: Integer(){} Integer(int i):m_i(i){} void get_val() { cout<<m_i<<endl; ...
阅读(2737) 评论(2)

网络编程(23)—— socket客户端连接上服务端是在listen之后而非在accept之时

我们知道在TCPIP中客户端同服务端建立连接,需要三次握手:    第一次:客户端向服务端请求发起连接,发送SYN    第二次:服务端收到客户端的请求后,向客户端回送ACK和SYN    第三次:客户端接收到服务端可以连接的信息,再向服务端发送ACK,表示收到服务端信息完成连接。    在刚刚接触网络编程时,很长一段时间都以为只有服务端调用accept后,客户端才会connect成功,但...
阅读(1052) 评论(0)

【C++面向对象】C++的类型成员指针

本文主要研究下C++中的类型成员指针。 一、类型成员指针是什么鬼?   相信很多童鞋刚刚听到这个名字时,第一反应就是不就是类中的指针成员变量吗,有什么好研究的?错,而且是大错而特错,请注意这两种叫法的区别:前者是类型成员指针,后者是类指针成员。差之毫厘失之千里也。   那么什么是成员类型指针呢?我们先看声明一个类,作为本次研究的小白鼠。 class person { public: ...
阅读(440) 评论(0)

网络编程(22)—— socket客户端和服务端收发数据包需要一对一的关系吗?

其实这个题目应该是一个疑问句,接触了这么久的TCPIP网络编程,一直不敢确定是不是在客户端和服务端分别进行读和写时,write和read要成对出现? 我想这也是很多网络编程的新手存在的疑问吧。         下面,就针对这个问题进行试验,以解答长久以来的疑惑。   我们写这样一个服务端,每当接收到客户端的数据是重复发送三次,发回给客户端。 #include #include #inclu...
阅读(970) 评论(0)

网络编程(21)—— 使用epoll进行IO复用

之前介绍了用于IO复用的select函数,其基本原理就是先在select函数中注册需要进行监视的条件操作符的集合,每次调用select,若集合中某个文件操作符存在待读数据、可传输无阻塞数据、或者异常时,改文件操作符在集合中被保留,其他被清零。   利用select进行IO复用,适合比较少连接或者有跨平台需求的服务器的开发,因为有两处制约其在处理多连接时的性能:   1、每次都需要将包含文件操作...
阅读(739) 评论(0)

网络编程(20)—— 广播的编程实现

一、广播和多播的区别     多播和广播的范围有区别,多播即使在跨越不同网络的情况下,只要加入多播组就能接受数据。而广播只能向同一网络中的主机传输数据。 二、广播的分类     广播分为两种,直接广播和本地广播。二者的主要差别在于IP地址,直接广播的IP地址,除了网络地址外,其余主机地址全部设置为1.如希望向网络地址192.12.34的所有主机传输数据时,可以向192.12.34.2...
阅读(750) 评论(0)

用flask开发个人博客(29)—— 其他主要模块

前面介绍了几个基本的flask程序结构的模块,下面回顾下所有模块的功能: 1.    config.py: import os basedir = os.path.abspath(os.path.dirname(__file__)) class Config: SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess st...
阅读(1118) 评论(0)

用flask开发个人博客(28)—— 利用unittest进行单元测试

下面分析下这个webapp的单元测试模块test,请先看下目前test下的文件结构: 目前__init__.py文件还是空,请查看test_basic.py的代码: import unittest from flask import current_app from app import create_app,db class BasicTestCase(unittest.TestCas...
阅读(1319) 评论(0)

用flask开发个人博客(27)—— 利用程序工厂函数创建Flask程序对象并注册蓝本

什么是程序工厂函数?请先看__init__.py的代码: from flask import Flask,render_template from flask.ext.bootstrap import Bootstrap from flask.ext.mail import Mail from flask.ext.moment import Moment from flask.ext.sqlal...
阅读(1578) 评论(0)

用flask开发个人博客(26)—— 利用config.py配置文件动态的创建不同的Flask对象

对配置进行封装的目的是根据不同的使用场景,给flask的app赋予不同的config,最经典的用法就是把开发、测试和生成分开,通过配置文件使用不同的数据库。 config.py代码如下:       import os basedir = os.path.abspath(os.path.dirname(__file__)) class Config: SECRET_KEY =...
阅读(3498) 评论(0)

【git】git修改历史提交

git使用amend选项提供了最后一次commit的反悔。但是对于历史提交呢,就必须使用rebase了。        git rebase -i HEAD~3        表示要修改当前版本的倒数第三次状态。         这个命令出来之后,会出来三行东东:         pick:*******         pick:*******...
阅读(515) 评论(0)

用flask开发个人博客(25)—— 博客程序结构介绍

从本文开始,我将对flask一个经典的大型程序结构进行分析,以巩固之前学习内容的目的。首先,展示下这个多文件Flask程序的基本结构:| |- Myblog     |- app         |- templates         |- static         |- main             |- __init__.py             |- errors...
阅读(1231) 评论(0)

【Python环境】Linux修改系统以及pip更新源

原文链接:http://blog.csdn.net/henulwj/article/details/47061527?locationNum=2&fps=1...
阅读(1338) 评论(0)
34条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:430449次
    • 积分:7086
    • 等级:
    • 排名:第3662名
    • 原创:294篇
    • 转载:17篇
    • 译文:1篇
    • 评论:66条
    其它平台
    博客专栏