编程我只用CPP 发布的文章

一、字符串查找

1.1 str.find(sub, start=None, end=None) 在字符串中查找相应的字符串或字符,找到返回下标,否则返回-1

可以设置startend 在指定下标范围内查找,默认为None 表示从字符串的开头到结尾。

s = "HelloWorld"
print s.find("Hello")  //0
print s.find("Hello", 1)  //-1
print s.find("hello")  //-1

- 阅读剩余部分 -

python中的字符串和int类型互转可以说是所有语言里面最简单的了,直接用strint 方法即可:

nNum = 9999999
print str(nNum)
strNum = "99999999"
print int(strNum)

很简单就能实现转换,而且也无需考虑数据大小越界的问题:

bigNum = "999999999999999999999999999999999999999999999999999999999999"
print int(bigNum) + 1 # 1000000000000000000000000000000000000000000000000000000000000

一、概述

为了安全起见,一般公司的服务器都会设置只允许内网主机远程登录,先登录到一台公网主机,然后再从这个主机通过ssh命令登录到内网。然后这样的话,安全性提高了,但是对开发者来说,登录就麻烦了,因为每次登录都要多个步骤,而一般情况下跳板机可能还不止一个。。。这样登录起来有点蛋疼!

其实最开始一直都是手动一个一个登录,直到有一天从老大那里看到了这么牛逼的操作。。。

- 阅读剩余部分 -

一、概述

前面已经完成了一个完美的多并发CS模型,但美中不足的是没有解决粘包问题。

1.1 什么是粘包问题?

在网络传输中,数据都是通过数据流来传输的,也就是以比特来传输。传输的过程中我们可能会遇到各种各样的问题导致数据传输异常,最常见的就是网络发送时延。网络时延会导致服务端此时收到的数据的时间有偏差,然后就导致数据接收数据的时间不一致。

- 阅读剩余部分 -

一、概述

上一篇实现了一个server和client通信,完成了小写转大写的功能,但是是一个单任务式的响应:客户端发送连接接收响应,程序结束;服务端则接收数据响应数据也结束!就实际需要而言,并没有很大的用处,所以现在我们就给客户端和服务端添加上并发功能。

逻辑其实很简单,就是利用golang的gorutine,一旦来新的连接,就开启一个gorutine去处理,然后响应,直到客户端关闭连接。

- 阅读剩余部分 -

工作的原因接触到socket,要使用socket实现一个长连接。之前只在C/C++上用过socket,而且在学校的时候也只是简单的做聊天室小程序,并没有涉及到长连接。突然用到工作项目上,心里还是有点悬的,毕竟网上的资料也不是很多。这里就一步一步记录下学习的过程、遇到的问题以及最重要的——解决问题的方法。

一、说明

golang中的socket需要用到net包,里面封装好了很多常用的函数方法以及元素类型。而且无需像C一样要经历socket,bind,listen,accept等等流程,只需要简单的几步流程就能完成,非常方便。

- 阅读剩余部分 -

"语言设置  
set langmenu=zh_CN.UTF-8  

"设置行号  
set nu  

"设置语法高亮  
syntax enable  
syntax on  

"设置配色方案  
colorscheme  desert  

"高亮显示匹配的括号  
set showmatch  

"设置缩进  
set tabstop=4  
set softtabstop=4  
set shiftwidth=4  
set autoindent  
set cindent  
if &term=="xterm"  
    set t_Co=8  
    set t_Sb=^[[4%dm  
    set t_Sf=^[[3%dm  
endif  

" c++ public缩进配置
set cinoptions=g0

"设置自动补全  
filetype plugin indent on   "打开文件类型检测  
set completeopt=longest,menu "关掉智能补全时的预览窗口  

"设置默认shell  
set shell=bash  

"设置VIM记录的历史数  
set history=400  

"设置当文件被外部改变的时侯自动读入文件  
if exists("&autoread")  
    set autoread  
endif  

"设置ambiwidth  
set ambiwidth=double  

" 删除键无法使用
set backspace=indent,eol,start

"设置文件类型  
set ffs=unix,dos,mac  

"设置增量搜索模式  
set incsearch  

"设置静音模式  
set noerrorbells  
set novisualbell  
set t_vb=  

"不要备份文件  
set nobackup

au BufReadPost * if line("''\"") > 0|if line("''\"") <= line("$")|exe("norm ''\"")|else|exe "norm $"|endif|endif