godoc的web版本开启方式
一、摘要
godoc是go默认自带的一个模块,提供了go语言的文档相关信息,一般情况下查询文档可以使用godoc **
来进行查询。
例如godoc fmt
,就会出现fmt
包相关的信息:
godoc是go默认自带的一个模块,提供了go语言的文档相关信息,一般情况下查询文档可以使用godoc **
来进行查询。
例如godoc fmt
,就会出现fmt
包相关的信息:
今天突然被学弟问到MFC的问题,问题是点击对话框叉叉之后对话框关不掉。
说实话,好久不用一时也想不起要怎么解决,只是有种熟悉的感觉。
依稀着记得有个OnCancel事件还是虚函数来着,半天想不起。
于是乎,百度,百度。。。终于找到了,是Detory()事件。
记录下来!顺便记录下VC6下格式化代码的快捷键:Alt+F8
stu1 = ["aaa", "bbb", "ccc"]
stu1.append("ddd") # ["aaa", "bbb", "ccc", "ddd"]
当列表中存在中文时,输出列表将会产生乱码:
>>> stus = ["小明", "小李", "小花"]
>>> print stus
["xd0xa1xc3xf7", "xd0xa1xc0xee", "xd0xa1xbbxa8"]
可以设置start
和end
在指定下标范围内查找,默认为None
表示从字符串的开头到结尾。
s = "HelloWorld"
print s.find("Hello") //0
print s.find("Hello", 1) //-1
print s.find("hello") //-1
python中的字符串和int类型互转可以说是所有语言里面最简单的了,直接用str
和int
方法即可:
nNum = 9999999
print str(nNum)
strNum = "99999999"
print int(strNum)
很简单就能实现转换,而且也无需考虑数据大小越界的问题:
bigNum = "999999999999999999999999999999999999999999999999999999999999"
print int(bigNum) + 1 # 1000000000000000000000000000000000000000000000000000000000000
前面已经完成了一个完美的多并发CS模型,但美中不足的是没有解决粘包问题。
在网络传输中,数据都是通过数据流来传输的,也就是以比特来传输。传输的过程中我们可能会遇到各种各样的问题导致数据传输异常,最常见的就是网络发送时延。网络时延会导致服务端此时收到的数据的时间有偏差,然后就导致数据接收数据的时间不一致。
上一篇实现了一个server和client通信,完成了小写转大写的功能,但是是一个单任务式的响应:客户端发送连接接收响应,程序结束;服务端则接收数据响应数据也结束!就实际需要而言,并没有很大的用处,所以现在我们就给客户端和服务端添加上并发功能。
逻辑其实很简单,就是利用golang的gorutine,一旦来新的连接,就开启一个gorutine去处理,然后响应,直到客户端关闭连接。
上一篇介绍了基本的函数和结构类型,这里就可以开始写服务端和客户端通信小程序了。
如果服务端使用Listen
来监听,那么可以不用ResolveTCPAddr
函数。
现在我们就来写一个server和client,实现功能:client发送数据到server,server将数据转成大写后返回。
工作的原因接触到socket,要使用socket实现一个长连接。之前只在C/C++上用过socket,而且在学校的时候也只是简单的做聊天室小程序,并没有涉及到长连接。突然用到工作项目上,心里还是有点悬的,毕竟网上的资料也不是很多。这里就一步一步记录下学习的过程、遇到的问题以及最重要的——解决问题的方法。
golang中的socket需要用到net包,里面封装好了很多常用的函数方法以及元素类型。而且无需像C一样要经历socket,bind,listen,accept等等流程,只需要简单的几步流程就能完成,非常方便。