• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 224  文章 - 41  trackbacks - 0
            <2008年11月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            享受編程

            常用鏈接

            留言簿(11)

            隨筆分類(159)

            隨筆檔案(224)

            文章分類(2)

            文章檔案(4)

            經典c++博客

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            用golang 建立起一個http server 非常的簡單,只要簡單的幾行代碼:
             
            package main
             
            import (
                
            "net/http"
            )
             
            func SayHello(w http.ResponseWriter, req 
            *http.Request) {
                w.Write([]
            byte("Hello"))
            }

             
            func main() 
            {
                http.HandleFunc(
            "/hello", SayHello)
                http.ListenAndServe(
            ":8001", nil)
             
            }


            使用GoSublime ide

            編譯 go build httpserver.go
            運行 httpserver.exe

            用chrome 訪問 http://127.0.0.1:8001/hello
            可以看到
            hello

            使用 go語言搭建 websocket 也非常的簡單

            先安裝 websocketbao
            go get code.google.com/p/go.net/websocket

            編寫golang的服務器


            package main

            import (
                
            "code.google.com/p/go.net/websocket"
                
            "fmt"
                
            "io"
                
            "log"
                
            "net/http"
            )

            func ChatWith(ws 
            *websocket.Conn) {
                var err error

                
            for {
                    var reply 
            string

                    
            if err = websocket.Message.Receive(ws, &reply); err != nil {
                        fmt.Println(
            "Can't receive")
                        
            break
                    }


                    fmt.Println(
            "Received back from client: " + reply)

                    
            //msg := "Received from " + ws.Request().Host + "  " + reply
                    msg := "welcome to websocket do by pp"
                    fmt.Println(
            "Sending to client: " + msg)

                    
            if err = websocket.Message.Send(ws, msg); err != nil {
                        fmt.Println(
            "Can't send")
                        
            break
                    }

                }

            }


            func Client(w http.ResponseWriter, r 
            *http.Request) {
                html :
            = `<!doctype html>
            <html>
                
                
            <script type="text/javascript" src="http://img3.douban.com/js/packed_jquery.min6301986802.js" async="true"></script>
                  
            <script type="text/javascript">
                     var sock 
            = null;
                     var wsuri 
            = "ws://127.0.0.1:8001";

                     window.onload 
            = function() {

                        console.log(
            "onload");

                        
                        
            try
                        
            {
                            sock 
            = new WebSocket(wsuri);
                        }
            catch (e) {
                            alert(e.Message);
                        }

                        
                        
                        

                        sock.onopen 
            = function() {
                           console.log(
            "connected to " + wsuri);
                        }

                        
                        sock.onerror 
            = function(e) {
                           console.log(
            " error from connect " + e);
                        }

                        
                        

                        sock.onclose 
            = function(e) {
                           console.log(
            "connection closed (" + e.code + ")");
                        }


                        sock.onmessage 
            = function(e) {
                           console.log(
            "message received: " + e.data);
                           
                           $(
            '#log').append('<p> server say: '+e.data+'<p>');
                           $(
            '#log').get(0).scrollTop = $('#log').get(0).scrollHeight;
                        }

                        
                     }
            ;

                     function send() 
            {
                        var msg 
            = document.getElementById('message').value;
                        $(
            '#log').append('<p style="color:red;">I say: '+msg+'<p>');
                            $(
            '#log').get(0).scrollTop = $('#log').get(0).scrollHeight;
                            $(
            '#msg').val('');
                        sock.send(msg);
                     }
            ;
                  
            </script>
                  
            <h1>WebSocket chat with server </h1>
                      
            <div id="log" style="height: 300px;overflow-y: scroll;border: 1px solid #CCC;">
                      
            </div>
                      
            <div>
                        
            <form>
                            
            <p>
                                Message: 
            <input id="message" type="text" value="Hello, world!"><button onclick="send();">Send Message</button>
                            
            </p>
                        
            </form>
                        
                      
            </div>

            </html>`
                io.WriteString(w, html)
            }


            func main() 
            {
                
            //
                http.Handle("/", websocket.Handler(ChatWith))
                http.HandleFunc(
            "/chat", Client)

                fmt.Println(
            "listen on port 8001")
                fmt.Println(
            "visit http://127.0.0.1:8001/chat with web browser(recommend: chrome)")

                
            if err := http.ListenAndServe(":8001", nil); err != nil {
                    log.Fatal(
            "ListenAndServe:", err)
                }

            }


            啟動服務器:





            用chrome 瀏覽器就可以和服務器交互



            這個程序較為簡單,以后可以加入服務器智能回答的功能。

            參考:
            http://www.sharejs.com/codes/go/4374

            http://www.xinze.me/%E5%9F%BA%E4%BA%8Egolang%E7%9A%84websocket-server/
            posted on 2012-12-14 15:07 漂漂 閱讀(16634) 評論(0)  編輯 收藏 引用
            久久这里有精品视频| AA级片免费看视频久久| 亚洲精品乱码久久久久久中文字幕| 少妇被又大又粗又爽毛片久久黑人 | 热综合一本伊人久久精品| 性做久久久久久久久| 欧洲人妻丰满av无码久久不卡 | 久久青青草原精品国产| 国产韩国精品一区二区三区久久| 久久综合狠狠综合久久激情 | 久久激情亚洲精品无码?V| 无码人妻久久久一区二区三区 | 久久91亚洲人成电影网站| 三级片免费观看久久| 国产成人精品白浆久久69| 性高朝久久久久久久久久| 久久99精品国产99久久| 久久人妻少妇嫩草AV蜜桃| 国产激情久久久久影院老熟女免费 | 色综合久久久久久久久五月| 久久毛片免费看一区二区三区| 2021精品国产综合久久| 99久久精品国产一区二区| 日韩精品无码久久一区二区三| 91久久婷婷国产综合精品青草| 久久频这里精品99香蕉久| 久久亚洲中文字幕精品一区| 久久久中文字幕| 久久国产精品久久国产精品| 久久精品亚洲中文字幕无码麻豆| 精品久久久中文字幕人妻| 综合久久给合久久狠狠狠97色| 久久久亚洲精品蜜桃臀| 精品久久久无码中文字幕天天| 91久久精品91久久性色| 99久久国语露脸精品国产| 日韩精品久久久久久免费| 久久久国产乱子伦精品作者| 亚洲中文字幕无码一久久区| 久久久久久精品免费免费自慰| 久久婷婷五月综合色奶水99啪|