最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang中net的tcp服務(wù)使用

 更新時間:2022年04月14日 16:28:05   作者:zhijie  
這篇文章主要介紹了golang中net的tcp服務(wù)使用,文章通過服務(wù)端監(jiān)聽端口 展開主題的詳細(xì)內(nèi)容,具有一定的參考價值,需要的 小伙伴可以參考一下

服務(wù)端監(jiān)聽端口 listen()

方法:net.listen({監(jiān)聽類型},{監(jiān)聽的ip和端口})(conn, err){}

返回值:conn是監(jiān)聽的對象,有獲取消息關(guān)閉監(jiān)聽等方法err錯誤信息,如果沒有錯誤信息值為nil

import ("net"
"fmt"
)
conn,err := net.Lisien("tcp","127.0.0.1:8082")
if err != nil{
 ?fmt.Println("鏈接失敗,錯誤信息為:"+err)
}

接受客戶端的鏈接conn.Accept()

方法:conn.Accept() (newConn,err){} 返回值: newConn客戶端的鏈接對象,類型為net.Conn.存放了客戶端的鏈接信息,和與客戶端交互的方法.err存放錯誤,如果沒有錯誤信息值為nil 注意點: Accept()方法會阻塞,直到有鏈接過來

//  ...上面的代碼...
// 因為客戶端的鏈接不止一個,需要一直監(jiān)聽,所以加個死循環(huán)
for{
    newConn,err := conn.Accept()
    if err != nil{
        fmt.Println(err)
    }
 ? ?go handler(newConn)
}
?
// 客戶端連接后處理邏輯
func handler(newConn net.Conn){
 ? ?// TODO
}

接收客戶端發(fā)過來的數(shù)據(jù)newConn.Read()

方法:newConn.Read(msg)(num,err){}

返回值: num數(shù)據(jù)內(nèi)容的長度,單位字節(jié)err錯誤信息,如果沒有錯誤信息值為nil

注意點: 參數(shù)msg是一個byte類型的切片,用來保存客戶端發(fā)送的數(shù)據(jù)。Read方法同樣會阻塞??!

// ...上上邊代碼補充...
// 客戶端連接后處理邏輯
func handler(newConn net.Conn){
 ? ?for{
 ? ? ? ?// 新建一個位置用于存放客戶端數(shù)據(jù)
 ? ? ? ?msg := make([]byte,1024)
 ? ? ? ?num,err := newConn.Read(msg)
 ? ? ? ?if err != nil{
 ? ? ? ? ? ?// 打印錯誤信息
 ? ? ?  }
 ? ? ? ?fmt.Println("客戶端消息:"+msg)
 ?  }
 ? ?
}

獲取客戶端的IP地址newConn.RemoteAddr().String()

// 獲取ip地址,轉(zhuǎn)為之字符串
newConn.RemoteAddr().String()

向客戶端發(fā)送數(shù)據(jù)newConn.Write()

方法:newConn.Write(msg){}

參數(shù):msg類型為[]byte。

注意點:需要把待發(fā)送的字符串轉(zhuǎn)為byte切片類型

newConn.Write([]bye("你好世界,helloworld1"))

關(guān)閉客戶端連接newConn.Close()

方法: newConn.Close(){}

在客戶端連接的返回的對象上調(diào)用Close()方法即可

newConn.Close()

客戶端連接tpc服務(wù)端

連接服務(wù)端net.Dial()

方法: net.Dial({連接類型},{地址})(conn,err){}

放回值: conn連接成功后的連接對象,err連接出錯時的錯誤信息,如果沒有錯誤信息,返回nil

// 建立tcp連接
package main
import (
 ? ?"net"
 ? ?"fmt"
)
Ip,Port := "127.0.0.1",8081
conn,err := net.Dial("tcp",fmt.Sprintf("%s:%d",Ip,Port))
if err != nil{
 ? ?fmt.Println("net.Dial 錯誤:",err)
 ? ?return nil
}
if(conn == nil){
 ? ?fmt.Println(">>>>>>>>連接錯誤")
 ? ?return
}
fmt.Println(">>>>>>>>連接成功")

運行: 

到此這篇關(guān)于golang中net的tcp服務(wù)使用的文章就介紹到這了,更多相關(guān)net的tcp服務(wù)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言里的new函數(shù)用法分析

    Go語言里的new函數(shù)用法分析

    這篇文章主要介紹了Go語言里的new函數(shù)用法,實例分析了new函數(shù)的功能及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • golang解析json數(shù)據(jù)的4種方法總結(jié)

    golang解析json數(shù)據(jù)的4種方法總結(jié)

    在日常工作中每一名開發(fā)者,不管是前端還是后端,都經(jīng)常使用 JSON,下面這篇文章主要給大家介紹了關(guān)于golang解析json數(shù)據(jù)的4種方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 淺析Go語言中的同步與異步處理

    淺析Go語言中的同步與異步處理

    在開發(fā)過程中,當(dāng)需要同時處理多個操作時,開發(fā)者經(jīng)常面臨同步和異步兩種處理方式的選擇,下面小編就來和大家詳細(xì)介紹一下Go語言中的同步與異步處理吧
    2023-11-11
  • Ubuntu下安裝Go語言開發(fā)環(huán)境及編輯器的相關(guān)配置

    Ubuntu下安裝Go語言開發(fā)環(huán)境及編輯器的相關(guān)配置

    這篇文章主要介紹了Ubuntu下安裝Go語言開發(fā)環(huán)境及編輯器的相關(guān)配置,編輯器方面介紹了包括Vim和Eclipse,需要的朋友可以參考下
    2016-02-02
  • 解決Go語言中高頻次和高并發(fā)下隨機數(shù)重復(fù)的問題

    解決Go語言中高頻次和高并發(fā)下隨機數(shù)重復(fù)的問題

    在Golang中,獲取隨機數(shù)的方法一般會介紹有兩種,一種是基于math/rand的偽隨機,一種是基于crypto/rand的真隨機,math/rand由于其偽隨機的原理,經(jīng)常會出現(xiàn)重復(fù)的隨機數(shù),導(dǎo)致在需要進(jìn)行隨機的業(yè)務(wù)出現(xiàn)較多的重復(fù)問題,所以本文給大家介紹了較好的解放方案
    2023-12-12
  • Go語言轉(zhuǎn)換所有字符串為大寫或者小寫的方法

    Go語言轉(zhuǎn)換所有字符串為大寫或者小寫的方法

    這篇文章主要介紹了Go語言轉(zhuǎn)換所有字符串為大寫或者小寫的方法,實例分析了ToLower和ToUpper函數(shù)的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • win10下go mod配置方式

    win10下go mod配置方式

    這篇文章主要介紹了win10下go mod配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • go語言中反射機制的三種使用場景

    go語言中反射機制的三種使用場景

    本文主要介紹了go語言中反射機制的三種使用場景,包括JSON解析、ORM框架和接口適配,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • Go語言開發(fā)快速學(xué)習(xí)CGO編程

    Go語言開發(fā)快速學(xué)習(xí)CGO編程

    這篇文章主要為大家介紹了Go語言開發(fā)之快速學(xué)習(xí)CGO編程,看了本文你就會發(fā)現(xiàn)CGO編程其實沒有想象的那么難,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Go存儲基礎(chǔ)使用direct io方法實例

    Go存儲基礎(chǔ)使用direct io方法實例

    這篇文章主要介紹了Go存儲基礎(chǔ)之如何使用direct io方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評論

青浦区| 长沙县| 虞城县| 大荔县| 静乐县| 永川市| 布尔津县| 辽阳市| 余干县| 永州市| 申扎县| 昭苏县| 中超| 武邑县| 法库县| 宁武县| 舒兰市| 东平县| 马鞍山市| 微山县| 惠州市| 邹城市| 祁门县| 聊城市| 广饶县| 华安县| 偏关县| 怀化市| 云林县| 襄樊市| 和顺县| 鹤山市| 抚宁县| 湖北省| 枣强县| 上杭县| 博湖县| 庐江县| 四川省| 旅游| 宣城市|