中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python TCP通信客戶端服務端代碼實例

發布時間:2020-10-13 05:42:11 來源:腳本之家 閱讀:123 作者:一0貳Ⅳ 欄目:開發技術

這篇文章主要介紹了Python TCP通信客戶端服務端代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

TCP客戶端:

import argparse, socket,sys
import time
# socket.setdefaulttimeout(20)

def recvall(sock, length):
  data = b''
  while len(data) < length:
    more = sock.recv(length - len(data))
    if not more:
      raise EOFError('總共有%dbytes,但只收到了%dbytes' % (length, len(data)))
    data += more
  return data
if __name__ == '__main__':
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sock.connect(('192.168.137.1', 10000))
  print('客戶的分配了socket:', sock.getsockname())
  i=0
  for x in range(4):
   # try:
     text = '我是客戶端你是服務器嚯嚯嚯!'.encode('utf-8')
     i=i+len(text)
     sock.sendall(text)
     sys.stdout.flush()
     print("已發送:",i)
   # except ConnectionResetError:
   #   pass
  sock.shutdown(socket.SHUT_WR)
  num = 0
  while True:
    reply = sock.recv(48) # b'Farewell, client'的長度
    num += len(reply)
    print('接收:',num)
    if not reply:
      print("ok")
      break

    # print('服務器返回:', reply.decode('utf-8'))
  print("理論上應該關閉sock")
  sock.close()
time.sleep(1)

TCP服務端:

import argparse, socket,sys

def recvall(sock, length):
  data = b''
  while len(data) < length:
    more = sock.recv(length - len(data))
    if not more:
      raise EOFError('總共有%dbytes,但只收到了%dbytes' % (length, len(data)))
    data += more
  return data
if __name__ == '__main__':
  sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  sc.bind(('', 10000))
  sc.listen()
  print('正在偵聽{}...'.format(sc.getsockname()))
  num = 0
  while True:
    scc, address = sc.accept()
    print('連接來自:', address)
    print('socket名字:', scc.getsockname())
    print('socket peer:', scc.getpeername())
    while True:
      message = scc.recv(42)#recvall(scc, 24) # 嘗試 12,,20,28會是什么結果
      if not message:
        break
      # print('收到16-octet消息:', repr(message))
      print('收到16-octet消息:', (message.decode('utf-8')))
      scc.sendall(message)
      sys.stdout.flush()
      num += len(message)
      print("已發送:",num)

    scc.close()
    print('應答發送,socket關閉')
  sc.close()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

枣阳市| 新巴尔虎右旗| 庆城县| 海兴县| 禄丰县| 岳池县| 崇州市| 上栗县| 丹凤县| 祁东县| 禄劝| 宁陵县| 岚皋县| 锦州市| 冷水江市| 平谷区| 辽阳县| 阜城县| 双鸭山市| 广安市| 邛崃市| 平果县| 安乡县| 京山县| 常熟市| 城市| 渭南市| 永川市| 武陟县| 张家口市| 四子王旗| 虎林市| 旬阳县| 北海市| 湘西| 保靖县| 博客| 垫江县| 湟中县| 长岛县| 遵义市|