国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

撫寧建設(shè)局網(wǎng)站網(wǎng)紅推廣接單平臺(tái)

撫寧建設(shè)局網(wǎng)站,網(wǎng)紅推廣接單平臺(tái),手工制作大全圖片教程,北京網(wǎng)站建設(shè)招標(biāo)文章目錄 網(wǎng)絡(luò)編程1、網(wǎng)絡(luò)編程的基本介紹2.網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí)1)協(xié)議(tcp/ip)2)OSI與TCP/ip參考模型3)ip地址4)端口(port)介紹5)tcp socket編程的客戶端和服務(wù)器端 3.socket編程快速入門(mén)4.經(jīng)典項(xiàng)目-海量用戶即時(shí)通訊系…

文章目錄

    • 網(wǎng)絡(luò)編程
      • 1、網(wǎng)絡(luò)編程的基本介紹
      • 2.網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí)
        • 1)協(xié)議(tcp/ip)
        • 2)OSI與TCP/ip參考模型
        • 3)ip地址
        • 4)端口(port)介紹
        • 5)tcp socket編程的客戶端和服務(wù)器端
      • 3.socket編程快速入門(mén)
      • 4.經(jīng)典項(xiàng)目-海量用戶即時(shí)通訊系統(tǒng)
        • 1)項(xiàng)目開(kāi)發(fā)流程
        • 2)需求分析
        • 3)界面設(shè)計(jì)

網(wǎng)絡(luò)編程

1、網(wǎng)絡(luò)編程的基本介紹

Golang的主要設(shè)計(jì)目標(biāo)之一就是面向大規(guī)模后端服務(wù)程序,網(wǎng)絡(luò)通信這塊是服務(wù)端程序必不可少也是至關(guān)重要的一部分

網(wǎng)絡(luò)編程有兩種

1)TCP socket編程,是網(wǎng)絡(luò)編程的主流。之所以交TCP socket編程,是因?yàn)榈讓邮腔赥cp/ip協(xié)議的,比如QQ聊天

2)b/s結(jié)構(gòu)的http編程。我們使用瀏覽器去訪問(wèn)服務(wù)器時(shí),使用的就是http協(xié)議,而http底層依舊是tcp socke實(shí)現(xiàn)的,比如京東商城(這屬于go web開(kāi)發(fā)范疇)

2.網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí)

1)協(xié)議(tcp/ip)

TCP/IP(Transmission Control Protocal)的簡(jiǎn)寫(xiě),中文譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又叫網(wǎng)絡(luò)通信協(xié)議,這個(gè)協(xié)議是Internet最基本的協(xié)議 internet國(guó)際互聯(lián)網(wǎng)的基礎(chǔ),簡(jiǎn)單的說(shuō),就是由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成的

協(xié)議的抽象理解圖

在這里插入圖片描述

2)OSI與TCP/ip參考模型

在這里插入圖片描述

詳細(xì)結(jié)構(gòu)(模擬qq好友發(fā)送數(shù)據(jù)經(jīng)過(guò)的網(wǎng)絡(luò)協(xié)議層)

在這里插入圖片描述

3)ip地址

概述:每個(gè)internet上的主機(jī)和路由器都有一個(gè)ip地址,他包括網(wǎng)絡(luò)和主機(jī)號(hào),ip地址有ipv4(32位)和ipv6(128位),可以通過(guò)ipconfig來(lái)查看

4)端口(port)介紹

我們這里所指的端口不是指物理意義上的端口,而是特指TCP/IP協(xié)議上的端口,是邏輯意義上的端口

如果把ip地址比作一個(gè)房子,端口就是出入這間房子的門(mén)。真正的房子只有幾個(gè)門(mén),但是一個(gè)ip地址的端口可以有65536(256256)個(gè)之多!端口是通過(guò)端口號(hào)來(lái)標(biāo)記的,端口號(hào)只有整數(shù),范圍是0到65535(256256-1)

端口–分類

  • 0是保留端口
  • 1-1024是固定端口 又叫有名端口,即被某些程序固定使用,一般程序員不使用, 22:SSH遠(yuǎn)程登錄協(xié)議 23:telnet使用 21:Ftp使用 25:smtp服務(wù)使用 80:iis使用 7:echo服務(wù)
  • 1025-65535是動(dòng)態(tài)端口這些端口,程序員是可以使用的(盡量使用40000以上的端口,這樣不易沖突,更好地進(jìn)行監(jiān)聽(tīng)操作)

在這里插入圖片描述

端口(port)-使用注意

  • 在計(jì)算機(jī)(尤其是做服務(wù)器)要盡可能的少開(kāi)端口
  • 一個(gè)端口只能被一個(gè)程序監(jiān)聽(tīng)
  • 如果使用netstat -an 可以查看本機(jī)有哪些端口在監(jiān)聽(tīng)
  • 可以使用netstat -anb來(lái)查看監(jiān)聽(tīng)端口的pid,在結(jié)合任務(wù)管理器關(guān)閉不安全的端口
5)tcp socket編程的客戶端和服務(wù)器端

下圖為Golang socket編程中客戶端和服務(wù)器的網(wǎng)絡(luò)分布

在這里插入圖片描述

3.socket編程快速入門(mén)

項(xiàng)目示意圖

在這里插入圖片描述

1)服務(wù)端的處理流程

-1.監(jiān)聽(tīng)端口

-2.創(chuàng)建客戶端的tcp連接,建立客戶端和服務(wù)端的連接

-3.創(chuàng)建goroutine,處理該連接的請(qǐng)求(通常客戶端會(huì)通過(guò)連接來(lái)發(fā)送請(qǐng)求包)

server.go

package main
import ("fmt""net" //做網(wǎng)絡(luò)socket開(kāi)發(fā)時(shí)。net包含有我們需要所有的方法和函數(shù)// "io"
)func process(conn net.Conn) {//這里我們循環(huán)的接收客戶端發(fā)送的數(shù)據(jù)defer conn.Close() //關(guān)閉connfor {//創(chuàng)建一個(gè)新的切片buf := make([]byte,1024)//1.等待客戶端通過(guò)conn發(fā)送信息//2.如果客戶端沒(méi)有write[發(fā)送],那么協(xié)程就阻塞在這里fmt.Printf("服務(wù)器在等待客戶端%s 發(fā)送信息"+ conn.RemoteAddr().String())n,err :=conn.Read(buf) //從conn讀取if err != nil {fmt.Printf("客戶端退出 err=%v\n",err)return // !!!}//3.顯示客戶端發(fā)送的內(nèi)容到服務(wù)器的終端fmt.Println(string(buf[:n]))}
}
func main() {fmt.Println("服務(wù)器開(kāi)始監(jiān)聽(tīng)")//net.Listen("tcp","0.0.0.0:8888")//1.tcp表示使用網(wǎng)絡(luò)協(xié)議是tcp//2.0.0.0.0:8888 表示在本地監(jiān)聽(tīng)8888端口listen, err :=net.Listen("tcp","0.0.0.0:8888")if err != nil {fmt.Println("listen err")return}defer listen.Close()  //延時(shí)關(guān)閉listen//循環(huán)等待客戶端連接我for {//等待客戶端連接誒fmt.Println("等待客戶端連接...")conn, err := listen.Accept()if err != nil {fmt.Println("Accept() err=",err)}else {fmt.Println("Accept() suc conn=%v 客戶端ip為=%v\n",conn,conn.RemoteAddr().String())}//這里準(zhǔn)備啟動(dòng)一個(gè)協(xié)程為客戶端服務(wù)go process(conn)}// fmt.Printf("Listen successfully=%v\n",listen)
}

2)客戶端的處理流程

-1.建立與服務(wù)端的鏈接

-2.發(fā)送請(qǐng)求數(shù)據(jù),接收服務(wù)器端返回的結(jié)果數(shù)據(jù)

-3.關(guān)閉連接

3)客戶端功能

-1.編寫(xiě)一個(gè)客戶端程序,能連接到服務(wù)端的8888端口

-2.客戶端可以發(fā)送單行數(shù)據(jù),然后就退出

-3.能通過(guò)終端輸入數(shù)據(jù)(輸入一行發(fā)送一行),并發(fā)送給服務(wù)器端

-4.在終端輸入exit表示退出程序

client.go

package main
import ("fmt""net""bufio""os""strings"
)func main() {conn, err :=net.Dial("tcp","192.168.31.102:8888")if err != nil {fmt.Println("client dial err=",err)return}//功能1.客戶端可以發(fā)送單行數(shù)據(jù),然后就退出reader:= bufio.NewReader(os.Stdin) //os.Stdin 代表標(biāo)準(zhǔn)輸入【終端】for {//從終端讀取一行用戶輸入,并準(zhǔn)備發(fā)送給服務(wù)器line, err :=reader.ReadString('\n')if err != nil {fmt.Println("readerString err=",err)}//如果用戶輸入的是exit就退出line = strings.Trim(line, "\r\n") if line == "exit"{fmt.Println("客戶端退出..")break}//再將line發(fā)送給服務(wù)器_, err =conn.Write([]byte(line+ "\n"))if err != nil {fmt.Println("conn.Write err=",err)}//fmt.Printf("客戶端發(fā)送了%d字節(jié)的數(shù)據(jù),并退出",n)}}

運(yùn)行效果圖

在這里插入圖片描述

4.經(jīng)典項(xiàng)目-海量用戶即時(shí)通訊系統(tǒng)

1)項(xiàng)目開(kāi)發(fā)流程

需求分析 -->設(shè)計(jì)階段–>編碼實(shí)現(xiàn)–>測(cè)試階段—>實(shí)施

2)需求分析

-1 用戶注冊(cè)

-2 用戶登錄

-3 顯示在線用戶列表

-4 群聊(廣播)

-5 點(diǎn)對(duì)點(diǎn)聊天(私聊)

-6 離線留言

3)界面設(shè)計(jì)

在這里插入圖片描述

項(xiàng)目開(kāi)發(fā)前技術(shù)準(zhǔn)備

項(xiàng)目要保存用戶信息和消息數(shù)據(jù),因此我們需要學(xué)習(xí)數(shù)據(jù)庫(kù)(Redis和mysql),這里我們選擇redis,先學(xué)習(xí)如何在golang中使用redis

http://m.aloenet.com.cn/news/33926.html

相關(guān)文章:

  • 網(wǎng)站開(kāi)發(fā)需要什么配置的電腦優(yōu)化外包服務(wù)公司
  • wordpress修改永久鏈接后無(wú)法訪問(wèn)seo優(yōu)化方案
  • 做網(wǎng)站大概需要多少錢(qián)深圳最新疫情
  • 濟(jì)南科技市場(chǎng)做網(wǎng)站河南做網(wǎng)站優(yōu)化
  • 做h5哪些網(wǎng)站好 知乎百度小程序
  • 蕪湖企業(yè)做網(wǎng)站電商運(yùn)營(yíng)入門(mén)基礎(chǔ)知識(shí)
  • 個(gè)人網(wǎng)站好備案嗎東莞seo網(wǎng)站排名優(yōu)化
  • Linux做視頻網(wǎng)站網(wǎng)速均衡今日最新足球推薦
  • 互聯(lián)網(wǎng)app網(wǎng)站建設(shè)方案模板下載霸榜seo
  • 毛絨玩具 東莞網(wǎng)站建設(shè) 技術(shù)支持江西短視頻seo搜索報(bào)價(jià)
  • 莫鄰網(wǎng)站在線客服系統(tǒng)3步打造seo推廣方案
  • 哪些網(wǎng)站做的比較炫網(wǎng)頁(yè)設(shè)計(jì)個(gè)人主頁(yè)
  • 百度網(wǎng)盤(pán)可以做網(wǎng)站嗎英文網(wǎng)站設(shè)計(jì)公司
  • 如何評(píng)價(jià)小米的網(wǎng)站建設(shè)小程序開(kāi)發(fā)平臺(tái)官網(wǎng)
  • 網(wǎng)站做302重定向網(wǎng)絡(luò)營(yíng)銷(xiāo)的未來(lái)發(fā)展趨勢(shì)
  • 國(guó)外網(wǎng)站代理如何查詢網(wǎng)站收錄情況
  • 頁(yè)面設(shè)計(jì)在線seo搜狗
  • 網(wǎng)絡(luò)培訓(xùn)班靠譜嗎網(wǎng)站優(yōu)化哪家好
  • 網(wǎng)站建設(shè)的售后seo優(yōu)化服務(wù)是什么
  • 日本軟銀集團(tuán)市值關(guān)鍵詞優(yōu)化公司排行
  • 做淘寶貨源網(wǎng)站seo關(guān)鍵詞優(yōu)化排名軟件
  • 網(wǎng)站的開(kāi)發(fā)方法谷歌全球營(yíng)銷(xiāo)
  • 定制做網(wǎng)站費(fèi)用seo還有哪些方面的優(yōu)化
  • 做靜態(tài)網(wǎng)站的開(kāi)題報(bào)告百度電話怎么轉(zhuǎn)人工客服
  • 貴港網(wǎng)站建設(shè)公司seo外包公司興田德潤(rùn)
  • 黔江網(wǎng)站建設(shè)推廣軟件賺錢(qián)的平臺(tái)
  • 自貢做網(wǎng)站的公司深圳在線制作網(wǎng)站
  • 橋頭仿做網(wǎng)站搜索引擎營(yíng)銷(xiāo)方案例子
  • 廣州市手機(jī)網(wǎng)站建設(shè)企業(yè)專業(yè)搜索引擎優(yōu)化
  • html5 個(gè)人網(wǎng)站模板世界足球排名