golang网络编程和文件处理
磨镜台
牢骚太盛防肠断,风物长宜放眼量。
展开
-
golang Socket客户端
Go语言标准库里的net包,支持基于IP层、TCP/UDP、HTTP、FTP、SMTP的网络操作。其中用于IP层称为Raw Socket。1.Dial函数func Dial(net, addr string) (Conn, error)支持:“tcp”,“udp”,“ip” 发送数据时,使用conn的Write()成员方法。接收数据时使用Read()方法。...原创 2018-07-27 17:55:58 · 244 阅读 · 0 评论 -
大端法和小端法
大端法和小端法指的是字节在内存中存储时的排列规则大端法常用于网络Big-endian高存低:高字节的数据存放在内存低位地址上数据: 0xaabbccdd内存低到高的顺序:aa bb cc dd两个16进制数为一个字节golang版代码 var i uint32 i = 0xAABBCCDD buf := make([]byte, 4) binary.BigEndian....原创 2019-05-24 21:13:38 · 1073 阅读 · 0 评论 -
TCP服务端
TCP-cs模型- server端 实现流程:创建监听器启动监听读客户端数据写数据给客户端读写goroutine创建和处理资源的释放创建监听器func Listen(network, address string)(Listener, error)参数network:协议,为tcp、udp(小写)。参数 address:IP地址和port端口。 “127.0.0.1:80...原创 2019-04-18 21:13:16 · 771 阅读 · 0 评论 -
网络简介
网络分层模型:OSI七层模型:物、数、网、传、会、表、应tcp\ip协议簇:链路层、网络层、传输层、应用层常见网络协议:应用层:http、ftp、tftp、ssh、telnet、nfs传输层:tcp、udp网络层:ip、icmp、IGMP链路层:arp、rarp数据通信流程:封装过程:数据-》应用层-》传输层-》网络层-》链路层-》网卡解封过程:网卡-》链路层-》网络...原创 2019-04-14 21:01:59 · 128 阅读 · 0 评论 -
正则表达式
正则表达式:字符类“.” 匹配任意一个字符,默认不包含\n“[]” 匹配中括号内任意一个字符“-” 搭配括号表示一个范围“^” 除去括号以外的内容都匹配数量限定符“?” 匹配它前的单元 0到1“+” 匹配它前的单元 1到N“*” 匹配它前的单元 0到N“{N}” 至少匹配N次“{N,M}” 至少N次,最多M次位置限定符“^” 指定以后面的字符为起始...原创 2019-04-15 20:41:49 · 207 阅读 · 0 评论 -
文件操作
创建文件:func Create(name string) (*File, error)路径可以是绝对路径,也可以是相对路径创建文件的权限是0666,然后经过文件掩码运算覆盖已经存在的文件文件掩码设置:func Umask(newUmask string)(int)返回旧的文件掩码新掩码一般设置为022打开文件:func Open(name string) (*File...原创 2019-04-10 21:33:34 · 99 阅读 · 0 评论 -
TCP连接状态转换
什么是TCPTCP是面向连接的可靠的数据包传递。针对不稳定的网络层做完全弥补,借助回执,丢包重传。TCP三次握手主动建立请求连接(客户端),发送SYN标志位,携带序号n被动接受连接请求端(服务器),接收SYN标志位,回发ACK携带确认序号n+1。同时发送SYN标志位M。主动建立请求连接(客户端),接收SYN标志位,回发ACK确认序号M+1标志3次握手完成,对应应用层客户端:Dia...原创 2018-09-20 14:03:10 · 286 阅读 · 0 评论 -
RPC编程
RPC(Remote Procedure Call, 远程过程调用)是一种通过网络从远程计算机程序请求服务,而不需要了解底层网络细节的应用程序通信协议。构建于TCP或UDP,或是HTTP。1.Go语言中RPC的支持于处理2.Gob简介3.设计优雅的RPC接口 实际上,Go标准库提供的net/rpc/json包,就是一套实现了rpc.ClientCodec和rpc.ServerCode...原创 2018-07-27 20:24:33 · 141 阅读 · 0 评论 -
HTTP服务端
1.处理HTTP请求 该方法用于在指定的TCP网络地址addr进行监听,然后调用服务端处理程序来处理传入的连接请求。func ListenAndServe(addr string, handler Handler) error2.处理HTTPS请求 需要SSL对应的证书和证书的私钥文件。func ListenAndServeTLS(addr string, certFile...原创 2018-07-27 20:09:24 · 343 阅读 · 0 评论 -
HTTP客户端
Go语言标准库内建了net/http包,涵盖了HTTP客户端和服务器的具体实现。1.基础方法1.1Get方法resp, err := http.Get("http://example.com/")1.2Post方法 参数一:目标URL 参数二:将要POST数据的资源类型(MIMEType) 参数三:数据的比特流([]byte形式)resp, err := http...原创 2018-07-27 19:58:55 · 173 阅读 · 0 评论 -
websocket
websocketWebSocket是应用层的双向全双工协议,基于tcp。创建链接只需要一次握手,服务器和浏览器就可以创建持久性连接。服务器可以持续推送消息,而过去使用轮询方法。首先浏览器要支持websocket,websocket主要应用弹幕,网站客服聊天,交易所行情实时推送。uri协议是ws,增加安全套接字wssgolang版本demopackage mainimport ( ...原创 2019-07-15 21:19:27 · 144 阅读 · 0 评论