<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## Socket 百度百科上對Socket的解釋是:Socket通常稱作“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄,可以用來實現不同虛擬機或不同計算機之間的通信。 ## Socket通信 下面圖是socket服務器與客戶端通信的過程,接下來我們簡單講一下編程 <div align="center"><img src="images/screenshot_1560395848760.png"/></div> 使用socket通信,首先導入socket模塊 ```python import socket ``` ### TCP服務器 1. 服務器創建套接字,綁定套接字到本地IP與端口 socket(family, type[, protocal])使用給定的套接族,套接字類型,協議編號(默認為0)來創建套接字。 ```python s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind() ``` 2. 開始監聽鏈接 s.listen(backlog) backlog為拒絕鏈接前,系統可以掛起的最大連接數,至少為1。 ```python s.listen(2) ``` 3. 進入循環,不斷接收客戶端的鏈接請求 ```python while True: s.accept() ``` accept()接受TCP鏈接并返回(conn, address),其中conn是新的套接字對象,可以用來接收和發送數據,address是鏈接客戶端的地址。 4. 接收客戶端傳來的數據,并且給對方發數據 ```python s.recv() s.sendall() ``` 注意: 服務器與客戶端不能直接發送列表,元素,字典等帶有數據類型的格式,發送的內容必須是字符串數據。 5. 傳輸完畢后,關閉套接字。 ```python s.close() ``` #### 簡單的服務器端代碼 ```python import socket HOST, PORT = '', 8000 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(5) print "Server start at:%s:%s" %(HOST, PORT) print "wait for connection..." while True: conn, addr = s.accept() print "Connected", addr while True: data = conn.recv(1024) print data conn.send("server received you message.") conn.close() s.close() ``` TCP客戶端 1. 創建套接字并鏈接至遠端地址(服務器) ```python s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect() ``` 客戶端調用connect()方法來建立與服務器的鏈接,并開始三次握手。握手保證了客戶端可以正常連接到服務器,反之亦然。 2. 連接后發送數據和接收數據 ```python s.sendall() s.recv() ``` 3. 傳輸完畢后關閉套接字 ```python s.close() ``` #### 簡單的客戶端代碼 ```python import socket HOST, PORT = '192.168.0. 118', 8000 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) while True: cmd = raw_input("Input msg:") s.send(cmd) data = s.recv(1024) print data s.close() ``` 參考:https://blog.51cto.com/loufeng/2340821
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看