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

溫馨提示×

溫馨提示×

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

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

python使用socket創建tcp服務器和客戶端

發布時間:2020-09-11 21:48:36 來源:腳本之家 閱讀:127 作者:欒鵬 欄目:開發技術

python使用socket創建tcp服務器和客戶端。

服務器端為一個時間戳服務器,在接收到客戶端發來的數據后,自動回復。

客戶端,等待用戶輸入,回車后向服務器發送用戶輸入的內容。

分別在python2.7和python3.6下測試。在啟動時需要先啟動服務器端,在啟動客戶端。

python2.7下

服務器端代碼為

#coding:utf-8

from socket import *
from time import ctime

print("=====================時間戳TCP服務器=====================");

HOST = '' #主機號為空白表示可以使用任何可用的地址。
PORT = 21567 #端口號
BUFSIZ = 1024 #接收數據緩沖大小
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM) #創建TCP服務器套接字
tcpSerSock.bind(ADDR) #套接字與地址綁定
tcpSerSock.listen(5) #監聽連接,同時連接請求的最大數目

while True:
  print('等待客戶端的連接...')
  tcpCliSock, addr = tcpSerSock.accept()  #接收客戶端連接請求
  print('取得連接:', addr)

  while True:
    data = tcpCliSock.recv(BUFSIZ) #連續接收指定字節的數據,接收到的是字節數組
    if not data: #如果數據空白,則表示客戶端退出,所以退出接收
      break
    tcpCliSock.send('[%s] %s' % (ctime(), data)) #向客戶端發送時間戳數據

  tcpCliSock.close() #關閉與客戶端的連接
tcpSerSock.close() #關閉服務器socket

客戶端代碼為

#coding:utf-8

from socket import *

print("=====================TCP客戶端=====================");

HOST = '127.0.0.1' #服務器ip地址,等價于localhost
PORT = 21567 #通信端口號
BUFSIZ = 1024 #接收數據緩沖大小
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM) #創建客戶端套接字
tcpCliSock.connect(ADDR) #發起TCP連接

while True:
  data = raw_input('> ')  #接收用戶輸入
  if not data: #如果用戶輸入為空,直接回車就會發送"",""就是代表false
    break
  tcpCliSock.send(data)  #客戶端發送消息
  data = tcpCliSock.recv(BUFSIZ)  #接收回應消息,接收到的是字節數組
  if not data:  #如果接收服務器信息失敗,或沒有消息回應
    break
  print(data) #打印回應消息

tcpCliSock.close() #關閉客戶端socket

python3.6下

服務器端代碼為

#coding:utf-8

from socket import *
from time import ctime

print("=====================時間戳TCP服務器=====================");

HOST = '127.0.0.1' #主機號為空白表示可以使用任何可用的地址。
PORT = 21567 #端口號
BUFSIZ = 1024 #接收數據緩沖大小
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM) #創建TCP服務器套接字
tcpSerSock.bind(ADDR) #套接字與地址綁定
tcpSerSock.listen(5) #監聽連接,同時連接請求的最大數目

while True:
  print('等待客戶端的連接...')
  tcpCliSock, addr = tcpSerSock.accept()  #接收客戶端連接請求
  print('取得連接:', addr)

  while True:
    data = tcpCliSock.recv(BUFSIZ) #連續接收指定字節的數據,接收到的是字節數組
    if not data: #如果數據空白,則表示客戶端退出,所以退出接收
      break
    #tcpCliSock.send('[%s] %s' % (bytes(ctime(), 'utf-8'), data))
    tcpCliSock.send(bytes('[%s] %s' % (ctime(), data.decode('utf-8')), 'utf-8')) #向客戶端發送時間戳數據,必須發送字節數組

  tcpCliSock.close() #關閉與客戶端的連接
tcpSerSock.close() #關閉服務器socket

客戶端代碼為

#coding:utf-8

from socket import *

print("=====================TCP客戶端=====================");

HOST = '127.0.0.1' #服務器ip地址,等價于localhost
PORT = 21567 #通信端口號
BUFSIZ = 1024 #接收數據緩沖大小
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM) #創建客戶端套接字
tcpCliSock.connect(ADDR) #發起TCP連接

while True:
  data = input('> ')  #接收用戶輸入
  if not data: #如果用戶輸入為空,直接回車就會發送"",""就是代表false
    break
  tcpCliSock.send(bytes(data, 'utf-8'))  #客戶端發送消息,必須發送字節數組
  data = tcpCliSock.recv(BUFSIZ)  #接收回應消息,接收到的是字節數組
  if not data:  #如果接收服務器信息失敗,或沒有消息回應
    break
  print(data.decode('utf-8')) #打印回應消息,或者str(data,"utf-8")

tcpCliSock.close() #關閉客戶端socket

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

向AI問一下細節

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

AI

澄迈县| 隆德县| 宁夏| 黑龙江省| 昭苏县| 和政县| 阳原县| 南汇区| 姜堰市| 乌兰察布市| 黑龙江省| 屯昌县| 阿巴嘎旗| 开江县| 苏尼特左旗| 通江县| 嘉义县| 沙河市| 日照市| 东丽区| 滁州市| 黄山市| 蒙阴县| 丹阳市| 陈巴尔虎旗| 吉安市| 闽侯县| 邯郸县| 新绛县| 渭源县| 林州市| 平湖市| 千阳县| 余庆县| 南岸区| 七台河市| 大城县| 定西市| 清水河县| 湖南省| 惠水县|