Golang的socket编程(二):简单client-server
一、概述
上一篇介绍了基本的函数和结构类型,这里就可以开始写服务端和客户端通信小程序了。
如果服务端使用Listen
来监听,那么可以不用ResolveTCPAddr
函数。
现在我们就来写一个server和client,实现功能:client发送数据到server,server将数据转成大写后返回。
上一篇介绍了基本的函数和结构类型,这里就可以开始写服务端和客户端通信小程序了。
如果服务端使用Listen
来监听,那么可以不用ResolveTCPAddr
函数。
现在我们就来写一个server和client,实现功能:client发送数据到server,server将数据转成大写后返回。
工作的原因接触到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
添加新用户命令useradd,命令格式如下:
useradd `选项` `用户名`
可选的选项:
-c
: comment 给用户指令备注描述-g
: 创建用户的同时添加用户组-G
: 指定用户的附加组-s
: 指定用户登录的shell-u
: 指定用户号-o
: 允许使用已有的用户号刚装系统后,电脑开机飞快,然后装驱动、装软件后就发现每次开机都要先黑屏个一到两分钟。
最开始一直找不到原因,总以为是某个流氓软件,然后就各种关闭启动项卸载软件,最后发现并没有用。
一直持续到某一天偶然卸载了显卡驱动,才发现竟然是显!卡!的!锅!