【资料图】
引入【1】网络编程:把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。
设备之间在网络中进行数据的传输,发送/接收数据。
【2】通信两个重要的要素:IP+PORT【3】设备之间进行传输的时候,必须遵照一定的规则 ---》通信协议:【4】TCP协议:可靠的建立连接: 三次握手
释放连接:四次挥手
【5】UDP协议:不可靠的基于TCP协议的网络通信-创建客户端【1】调用Dial函数:(net包下)【2】代码:package mainimport ("fmt"//所需的网络编程全部都在net包下"net")func main() {fmt.Println("客户端启动...")//调用Dial函数:参数需要指定tcp协议,需要指定服务器端的IP+PORTconn,err := net.Dial("tcp","101.201.48.167:80")if err != nil {fmt.Println("客户端连接失败:err:",err)return}fmt.Println("连接成功,conn:",conn)}
基于TCP协议的网络通信-创建服务器端【1】进行监听:(Listen函数在net包下)【2】代码:package mainimport ("fmt""net")func main() {fmt.Println("服务端启动了...")listen,err := net.Listen("tcp","127.0.0.1:8888")if err != nil {fmt.Println("监听失败,err:",err)return }for{conn,err2 := listen.Accept()if err2 != nil {fmt.Println("客户端的等待失败,err2:",err2)}else {fmt.Printf("等待连接成功,con=%v,接收到的客户端信息:%v \n",conn,conn.RemoteAddr().String())}}}
基于TCP协议的网络通信-处理终端数据【1】客户端发送数据:package mainimport ("fmt"//所需的网络编程全部都在net包下"net""bufio""os")func main() {fmt.Println("客户端启动...")//调用Dial函数:参数需要指定tcp协议,需要指定服务器端的IP+PORTconn,err := net.Dial("tcp","127.0.0.1:8888")if err != nil {fmt.Println("客户端连接失败:err:",err)return}fmt.Println("连接成功,conn:",conn)//通过客户端发送单行数据,然后退出:reader := bufio.NewReader(os.Stdin)//从终端读取一行用户输入的信息:str,err := reader.ReadString("\n")if err != nil {fmt.Println("终端输入失败,err",err)}//将str数据发送给服务器:n,err := conn.Write([]byte(str))if err != nil {fmt.Println("连接失败,err:",err)}fmt.Printf("终端数据通过客户端发送成功,一共发送了%d字节的数据,并退出",n)}
【2】服务器端接收数据:package mainimport ("fmt""net")func process(conn net.Conn) {//连接用完一定要关闭:defer conn.Close()for {//创建一个切片,准备:将读取的数据放入切片buf := make([]byte, 1024)//从conn连接中读取数据:n,err := conn.Read(buf)if err != nil {return}//将读取内容在服务器端输出:fmt.Println(string(buf[0:n]))}}func main() {fmt.Println("服务端启动了...")listen,err := net.Listen("tcp","127.0.0.1:8888")if err != nil {fmt.Println("监听失败,err:",err)return }for{conn,err2 := listen.Accept()if err2 != nil {fmt.Println("客户端的等待失败,err2:",err2)}else {fmt.Printf("等待连接成功,con=%v,接收到的客户端信息:%v \n",conn,conn.RemoteAddr().String())}//准备一个协程,协程处理客户端服务请求://不同的客户端的请求,连接conn不一样的go process(conn)}}
标签:
上一篇 : 德马科技:8月9日融券卖出868股,融资融券余额6812.07万元
下一篇 : 最后一页
最新推荐
引入【1】网络编程:把分布在不同地理区域的计算机与专门的外部设备用
8月9日,德马科技(688360)融资买入50 02万元,融资偿还60 22万元,融
中国联通上半年净利润增超13%。8月9日,中国联合网络通信股份有限公司
长安街知事微信公众号近日,有网友发布视频称,重庆某寺庙供奉了“日本
1、failedv 失败(衰退,缺乏,破产,忽略)a 已失败的。本文到此讲解完毕了
,你们好,今天0471房产来聊聊一篇海路29号B楼民国建筑,海路29号B楼民
父亲那句“我永远是赵洲港的儿子”,久久回响在耳旁。从五四运动到北伐
在湖南长沙,地铁客运量已经反超公交车,成为主要的公共交通方式,地面
新民晚报讯(记者屠瑜)男子等公交时发现一辆电动自行车未拔钥匙,为图
公元前约150年左右,汉景帝中元时期,第一任轪侯长沙国丞相利苍的夫
8月9日,记者从江西省舞蹈家协会获悉,刚刚结束的2023年TheNotoriousIB
高考志愿规划师是一项非常有前途的职业,随着高考竞争的日益激烈,越来
小米手机miui优化在哪1、MIUI优化的功能在开发者选项里面,打开设置>
截至2023年8月9日收盘,贵州茅台(600519)报收于1890 28元,上涨0 01%,
我不能够说太多关于进展上的问题。内马尔无论是实力还是人气都是巴萨需
好啦,今天的分享到这里就结束啦,大家看完这篇文章,知道ai智能绘
1、如果你要没外挂的还是建议玩反恐行动,但反恐行动没csol好玩,这一
今年度“彰化县长杯公务人员桌球赛”今天上午登场,中国国民党彰化县长
界面新闻记者|丁晶晶界面新闻编辑|近日,据时代财经消息,湖北民营公交
而到了夏窗时候,很明显张康阳也是想通了,想要继续为国米提升竞争力。
证券时报e公司讯,企查查APP显示,近日,广东华希粤智能科技有限公司成
在我国动力电池产业发展的过程中,一批通过技术创新自我角力的企业,正
作为国内排坛的传统强队,天津女排在成年组一直都是称王称霸的存在,但
分时图快速拉升意味此时存在大单买入,在大单的推动下,股价快速地上涨
今年以来新成立基金逾600只数量和份额同比均下滑- "其中,今年以来新成
8月8日,赛迪顾问发布“2023赛迪百强区”。记者梳理榜单发现,此次山东
8月8日,博时信用债券A B最新单位净值为3 051元,累计净值为3 166元,
直播吧8月8日讯根据德天空记者FlorianPlettenberg的报道,拜仁意识到凯
你们好,最近小活发现有诸多的小伙伴们对于龙猫手绘图片铅笔画简单,龙
深圳这个公司为什么愿意尹莲娜欠100多万?2017年运费很便宜的,是不是
北京商报讯(记者刘卓澜)中国企业布局海外资本市场风险与挑战兼备。8
今天小鱼来为大家解答以上问题,咋个杀螃蟹,如何杀螃蟹让它不痛苦很多
阅读隐藏边栏发布日期:2023-08-0817:02:15所属分类:财经
央视网消息:中央气象台网站消息,内蒙古自治区气象台2023年08月08日15
8月7日,高质量发展媒体调研行走进广州各大企业,聚焦智慧交通、生物医
斐梅 星结汉化组更新暴击,触发三连更!这次我们公开的是2021年,由保
8月8日,中央人民政府驻香港特别行政区联络办公室发言人发表谈话,祝贺
如今在欧洲城市,越来越多人骑着电驴或者踏板车四处游逛,这也变相催生
8月8日,乘联会发布的最新数据显示,1~7月,国内乘用车市场累计零售量
【振幅大】-今日A股共有7只个股振幅超过20%;-科源制药、致远新能、海
据广州消防8月8日通报,8月3日傍晚6时左右,黄埔区某住宅区,一名10岁
1、发脾气时要有三分醒,多等三分方明事理!因为你脾气大时做事缺乏理
微软正在终止其XboxGamePass朋友和家庭计划,该计划允许其会员与最多四
1、员工工资表单位年月日职等小计职位姓名应领工资金额本薪主管津贴修
近日,观山湖区总工会2023年“夏日送清凉·关爱暖人心”活动启动仪式暨
从这些层面看,TFBOYS十周年演唱会的总收入,可能会超过2亿元。经济公
“这个葡萄新鲜吧?”“猪肉多少钱一斤?”8月7日,记者来到当日新开业
每经AI快讯,史丹利在投资者互动平台表示,目前公司没有控股磷矿或直接
近日,我国京津冀等地遭遇严重暴雨洪涝灾害。专家提醒,夏季暴雨和洪水
本轮大连人客战排名第10、比自己多12分的沧州雄狮,肯定会十分困难,因
成都抗疫的外籍志愿者:愿为城市“康复”贡献力量
Copyright © 2015-2032 华西律师网版权所有 备案号:京ICP备2022016840号-35 联系邮箱: 920 891 263@qq.com