go語言 Socket程式設計 二十五

2021-10-25 17:12:03 字數 1325 閱讀 9724

1.  socket是什麼

socket起源於unix,而unix基本哲學之一就是「一切皆檔案」,都可以用「開啟open –> 讀寫write/read –> 關閉close」模式來操作。socket就是該模式的乙個實現,網路的socket資料傳輸是一種特殊的i/o,socket也是一種檔案描述符。socket也具有乙個類似於開啟檔案的函式呼叫:socket(),該函式返回乙個整型的socket描述符,隨後的連線建立、資料傳輸等操作都是通過該socket實現的。

常用的socket型別有兩種:流式socket(sock_stream)和資料報式socket(sock_dgram)。流式是一種面向連線的socket,針對於面向連線的tcp服務應用;資料報式socket是一種無連線的socket,對應於無連線的udp服務應用。

2.  tcp的c/s架構

3. 示例**

伺服器**

package main

import (

"fmt"

"log"

"net"

"strings"

)func dealconn(conn net.conn)

//切片擷取,只擷取有效資料

result := buf[:n]

fmt.printf("接收到資料來自[%s]==>[%d]:%s\n", ipaddr, n, string(result))

if "exit" == string(result)

//把接收到的資料轉換為大寫,再給客戶端傳送

conn.write(byte(strings.toupper(string(result))))

}}func main()

defer listenner.close()

for

go dealconn(conn)}}

客戶端**

package main

import (

"fmt"

"log"

"net"

)func main()

defer conn.close() //關閉

buf := make(byte, 1024) //緩衝區

for

//切片擷取,只擷取有效資料

result := buf[:n]

fmt.printf("接收到資料[%d]:%s\n", n, string(result))}}

執行結果

演算法(二十五)

1 給定兩個不字串,求出最長公共子串行的長度。int longestpublicsubsequence string x,string y else return math.max longestpublicsubsequence x.substring 1 y.substring 0 longes...

python程式設計基礎之二十五

匿名函式 不用def 定義的函式,沒有函式名 lambda 引數1 引數2 引數3 引數n 表示式 def test print 我是測試函式 print test 函式名是變數,指向了函式物件 pf test pf變數也指向了函式物件,所以也可以通過pf呼叫test函式 pf 傳入函式 乙個函式接...

Effective C 之二十五

要點 提供不會丟擲異常的swap函式。swap自stl引入後就成為異常安全 exception safe 程式設計的基石。在條款11避免自賦值時已談到過。stl中swap的預設實現是通過臨時變數實現交換。但是對某些型別這是很低效的,例如pimpl只需要交換指標即可。之後,meyers提出在std命名...