日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用python怎么實(shí)現(xiàn)客戶端與服務(wù)端之間的通信-創(chuàng)新互聯(lián)

使用python怎么實(shí)現(xiàn)客戶端與服務(wù)端之間的通信?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供蚌山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、做網(wǎng)站、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為蚌山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

函數(shù)介紹

Socket對(duì)象方法:

服務(wù)端:

函數(shù)描述
.bind()綁定地址關(guān)鍵字,AF_INET下以元組的形式表示地址。常用bind((host,port))
.listen()監(jiān)聽TCP,可以掛起的較大連接數(shù),該值至少為1,一般設(shè)為5即可
.accept()被動(dòng)接受TCP客戶端的連接

客戶端:

函數(shù)描述
.connect()初始化服務(wù)器連接
.connect_ex()是對(duì)connect()函數(shù)的擴(kuò)展,當(dāng)出錯(cuò)時(shí)返回出錯(cuò)碼,不報(bào)異常

其它函數(shù):

函數(shù)描述
.recv()接收數(shù)據(jù),數(shù)據(jù)以字符串的形式返回,bufsize指定接收的較大數(shù)據(jù)量。
.send()發(fā)送數(shù)據(jù),將string中的數(shù)據(jù)發(fā)送到連接的套接字,返回值是要發(fā)送的字節(jié)數(shù)量,通常使用.encode()函數(shù)對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)碼
.senddall()發(fā)送完整的數(shù)據(jù),在返回之前會(huì)嘗試發(fā)送所有數(shù)據(jù),成功返回None,失敗則拋出異常。
.recvfrom()與recv()函數(shù)類似,不同的是返回值是(data,address),其中data是包含接收數(shù)據(jù)的字符串,address是發(fā)送數(shù)據(jù)的套接字地址。
.sendto()發(fā)送UDP數(shù)據(jù),將數(shù)據(jù)發(fā)送到套接字,形式是(ipaddr,port)的元組。
.close()關(guān)閉套接字

服務(wù)端

使用socket函數(shù)來(lái)創(chuàng)建一個(gè)socket對(duì)象,并設(shè)置一個(gè)socket服務(wù),然后通過(guò)bind(hostname,port)函數(shù)來(lái)指定一個(gè)端口,使用socket對(duì)象的accept方法,等待客戶端的連接,并返回connection對(duì)象。
具體步驟為:

創(chuàng)建服務(wù)端套接字
serversocket=socket()
把地址綁定到套接字
serversocket.bind()
對(duì)連接進(jìn)行監(jiān)聽
serversocket.listen()
使用一個(gè)while進(jìn)行循環(huán),并接收客戶端的連接
while True:
 serverclient=serversocket.accept()
 while True:
   #接收已發(fā)送
   serverclient.recv()
   serverclient.send()
   #關(guān)閉客戶端套接字
   serverclient.close()
關(guān)閉服務(wù)端套接字
serversocket.close()

具體代碼實(shí)現(xiàn):

import socket
import sys
import time

serversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host=socket.gethostname()#獲取本地主機(jī)名
port=9999
#綁定端口號(hào)
serversocket.bind((host,port))

#設(shè)置較大連接數(shù)
serversocket.listen(5)
while True:
  print('服務(wù)器啟動(dòng),監(jiān)聽客戶端鏈接')
  clientsocket,addr=serversocket.accept()
  print('鏈接地址:%s' % str(addr))
  while True:
    try:
      data=clientsocket.recv(1024)
    except Exception:
      print('斷開的客戶端:',addr)
      break
    print('客戶端發(fā)送內(nèi)容:',data.decode('utf-8'))
    reply=input('回復(fù):').strip()
    if not reply:
      break
    msg=time.strftime('%Y-%m-%d %X')#獲取結(jié)構(gòu)化時(shí)間戳
    msg1='[%s]:%s'% (msg,reply)
    clientsocket.send(msg1.encode('utf-8'))
  clientsocket.close()
serversocket.closel()

實(shí)現(xiàn)功能:通過(guò)while實(shí)現(xiàn)循環(huán)接收客戶端發(fā)送的數(shù)據(jù),并對(duì)客戶端發(fā)送的數(shù)據(jù)進(jìn)行顯示并返回給客戶端數(shù)據(jù),返回給客戶端的數(shù)據(jù)信息后加入時(shí)間戳。

客戶端

創(chuàng)建一個(gè)客戶端用來(lái)連接以上服務(wù)的的服務(wù),使用socket.connect()方法打開一個(gè)TCP連接到主機(jī),連接后可以從服務(wù)端獲取數(shù)據(jù),在操作完成后關(guān)閉連接。 具體步驟為: ``` 創(chuàng)建客戶端的套接字 client=socket() 嘗試連接服務(wù)器 client.connect() 發(fā)送并接收數(shù)據(jù) client.send() client.recv() 關(guān)閉客戶端套接字 client.close() ``` **具體代碼實(shí)現(xiàn):**

import socket
import sys


s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host=socket.gethostname()
port=9999
s.connect((host,port))
while True:
  data= input('>>').strip()
  if not data:
    break
  s.send(data.encode('utf-8'))
  msg=s.recv(1024)
  if not msg:
    break
  print(msg.decode('utf-8'))
s.close()

測(cè)試

使用cmd命令行中打開到代碼所在文件目錄,執(zhí)行python 服務(wù)端文件名.py,再另打開一個(gè)cmd命令界面執(zhí)行 python 客戶端文件名.py
在pycharm中運(yùn)行服務(wù)端代碼,運(yùn)行結(jié)果:

使用python怎么實(shí)現(xiàn)客戶端與服務(wù)端之間的通信

在cmd中運(yùn)行客戶端代碼,運(yùn)行結(jié)果:

使用python怎么實(shí)現(xiàn)客戶端與服務(wù)端之間的通信

看完上述內(nèi)容,你們掌握使用python怎么實(shí)現(xiàn)客戶端與服務(wù)端之間的通信的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


當(dāng)前標(biāo)題:使用python怎么實(shí)現(xiàn)客戶端與服務(wù)端之間的通信-創(chuàng)新互聯(lián)
鏈接分享:http://www.dlmjj.cn/article/ccihig.html