91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

游戏| 永城市| 岑巩县| 聂荣县| 图木舒克市| 资中县| 洪湖市| 屯门区| 霞浦县| 隆化县| 项城市| 疏勒县| 安国市| 夏邑县| 浦北县| 静宁县| 峨边| 微博| 铁岭市| 潞城市| 明星| 安岳县| 皋兰县| 赣榆县| 绿春县| 镇远县| 衡南县| 万荣县| 玉树县| 潜山县| 和静县| 三明市| 耿马| 上高县| 娱乐| 胶州市| 斗六市| 周口市| 开阳县| 天气| 普兰店市|