網頁伺服器
訪問並讀取頁面
websocket
// ****** multi-thread/multi-core tcp server.
package main
import
("flag"
"fmt"
"net"
"syscall"
)const maxread =
25func
main()
hostandport := fmt.
sprintf
("%s:%s"
, flag.
arg(0)
, flag.
arg(1)
) listener :=
initserver
(hostandport)
for}
func
initserver
(hostandport string
) net.listener
func
connectionhandler
(conn net.conn)
}disconnect:
err := conn.
close()
println
("closed connection: "
, connfrom)
checkerror
(err,
"close: ")}
func
sayhello
(to net.conn)
wrote, err := to.
write
(obuf)
checkerror
(err,
"write: wrote "
+string
(wrote)
+" bytes.")}
func
handlemsg
(length int
, err error
, msg [
]byte
) fmt.
printf
("%c"
, msg[i])}
print
(">")}
}func
checkerror
(error
error
, info string
)}
package main
import
("bufio"
"fmt"
"net"
"os"
"strings"
)func
main()
inputreader := bufio.
newreader
(os.stdin)
fmt.
println
("first, what is your name?"
) clientname,
_:= inputreader.
readstring
('\n'
)// fmt.printf("clientname %s", clientname)
trimmedclient := strings.
trim
(clientname,
"\r\n"
)// windows 平台下用 "\r\n",linux平台下使用 "\n"
// 給伺服器傳送資訊直到程式退出:
)// http.request 描述了客戶端請求,內含乙個 url 字段。
// http.url 用於表示網頁位址,其中字串屬性 path 用於儲存 url 的路徑
// 傳送乙個簡單的 http.head() 請求檢視返回值resp,resp.status為狀態碼
func
testhead()
fmt.
println
(url,
": "
, resp.status)}}
// 使用 http.get() 獲取並顯示網頁內容; get 返回值中的 body 屬性包含了網頁內容,然後我們用 ioutil.readall 把它讀出來:
func
testget()
func
checkerror
(err error
)}
通俗易懂描述websocket
go網路程式設計 RPC程式設計
remote procedure call,遠端過程呼叫 而一旦踏入公司尤其是大型網際網路公司就會發現,公司的系統都由成千上萬大大小小的服務組成,各服務部署在不同的機器上,由不同的團隊負責。這時就會遇到兩個問題 1 要搭建乙個新服務,免不了需要依賴他人的服務,而現在他人的服務都在遠端,怎麼呼叫?2 ...
go網路程式設計 http程式設計
一 web工作流程 web伺服器的工作原理可以簡單歸納為 1.客戶端通過tcp ip協議與伺服器建立連線 2.客戶端向伺服器傳送http協議請求包,請求伺服器裡的文件資源 3.伺服器向客戶端傳送http協議應答包,如果請求的資源中包含動態語言的內容,那麼伺服器會呼叫動態語言的解釋引擎負責處理 動態內...
go語言網路程式設計
go語言的defer,你真的懂了嗎?這篇文章通過幾個生動的例子闡述了go語言當中return的執行順序和原理,也解答了為什麼defer明明執行在return之前,但是看起來卻是在return之後進行的 package main import net fmt func main else else e...