欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python socket聊天腳本代碼實(shí)例

 更新時(shí)間:2020年01月02日 09:07:17   作者:就是想學(xué)習(xí)  
這篇文章主要介紹了Python socket聊天腳本代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Python socket聊天腳本代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

沒有前端,多開了一條線程用于接收信息。

服務(wù)器端:

# -*- coding:utf-8 -*-
import socket
import threading
 
class Sock_Server:
  def __init__(self):
    self.host = '192.168.1.11' # 獲取主機(jī)名
    self.port = 12345 # 端口
    self.ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 設(shè)置模式
    self.ser.bind((self.host, self.port))
    self.ser.listen(5)
    print('等待客戶端連接:')
    self.sock, self.addr = self.ser.accept()    # 被動(dòng)接口客戶端連接。
    print(f'客戶:{self.addr},已經(jīng)連接')
 
  def recv(self):      # 接收信息模塊
    try:
      while True:
        recv_info = self.sock.recv(1024)
        if recv_info:
          print('\n收到消息:', recv_info.decode())
          if recv_info == '886':
            self.sock.close()
            self.ser.close()
            print('聊天結(jié)束!over')
            break
    finally:
      self.sock.close()
      self.ser.close()
 
  def send(self):
    try:
      while True:
        send_info = input('請(qǐng)輸入你要發(fā)送的內(nèi)容:')
        self.sock.send(send_info.encode())
        if send_info == '886':
          self.sock.close()
          self.ser.close()
          print('聊天結(jié)束!over')
          break
    finally:
      self.sock.close()
      self.ser.close()
 
if __name__ == '__main__':
  sock = Sock_Server()
  t1 = threading.Thread(target=sock.recv)
  t1.start()
  sock.send()

客戶端:

# -*- coding:utf8 -*-
import socket
import threading
 
class Sock_Cli:
  def __init__(self):
    self.host = socket.gethostname() # 獲取主機(jī)名
    self.port = 12345 # 端口
    self.ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 設(shè)置模式
    self.ser.connect((self.host, self.port))
 
  def recv(self):      # 接收信息模塊
    try:
      while True:
        recv_info = self.ser.recv(1024)
        if recv_info:
          print('\n收到消息:', recv_info.decode())
          if recv_info == '886':
            self.ser.close()
            print('聊天結(jié)束!over')
            break
    finally:
      self.ser.close()
 
  def send_info(self):
    try:
      while True:
        send_info = input('請(qǐng)輸入你要發(fā)送的內(nèi)容:')
        self.ser.sendall(send_info.encode())
        if send_info == '886':
          self.ser.close()
          print('聊天結(jié)束!over')
          break
    finally:
      self.ser.close()
if __name__ == '__main__':
  cli = Sock_Cli()
  t1 = threading.Thread(target=cli.recv)
  t1.start()
  cli.send_info()

socket是進(jìn)程間進(jìn)行通訊很好的方式。

整個(gè)代碼在886輸入退出還存在一些問題,不改了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • VsCode中超好用的8個(gè)python插件推薦

    VsCode中超好用的8個(gè)python插件推薦

    本人日常使用vscode進(jìn)行開發(fā),并且比較喜歡折騰vscode,會(huì)到處找這一些好玩的插件,于是越攢越多,下面這篇文章主要給大家介紹了關(guān)于VsCode中超好用的8個(gè)python擴(kuò)展插件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Python利用matplotlib繪制散點(diǎn)圖的新手教程

    Python利用matplotlib繪制散點(diǎn)圖的新手教程

    這篇文章主要給大家介紹了關(guān)于Python利用matplotlib繪制散點(diǎn)圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python使用雙豎線分割的實(shí)現(xiàn)

    python使用雙豎線分割的實(shí)現(xiàn)

    本文主要介紹了python使用雙豎線分割的實(shí)現(xiàn),通過接收用戶輸入的字符串,使用split()方法進(jìn)行分割,并將結(jié)果輸出給用戶,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • python opencv對(duì)圖像進(jìn)行旋轉(zhuǎn)且不裁剪圖片的實(shí)現(xiàn)方法

    python opencv對(duì)圖像進(jìn)行旋轉(zhuǎn)且不裁剪圖片的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇python opencv對(duì)圖像進(jìn)行旋轉(zhuǎn)且不裁剪圖片的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python使用回溯算法實(shí)現(xiàn)列表全排列

    python使用回溯算法實(shí)現(xiàn)列表全排列

    這篇文章主要介紹了python使用回溯算法實(shí)現(xiàn)列表全排列,研究的問題是輸入列表L(不含重復(fù)元素),輸出L的全排列,全排列問題,可以用回溯法解決,需要的朋友可以參考下
    2023-11-11
  • Django框架組成結(jié)構(gòu)、基本概念與文件功能分析

    Django框架組成結(jié)構(gòu)、基本概念與文件功能分析

    這篇文章主要介紹了Django框架組成結(jié)構(gòu)、基本概念與文件功能,簡(jiǎn)單分析了Django框架的基本架構(gòu)、組成、項(xiàng)目創(chuàng)建方法、模塊組成以及相關(guān)文件功能,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)統(tǒng)計(jì)文本中字符的方法小結(jié)

    Python實(shí)現(xiàn)統(tǒng)計(jì)文本中字符的方法小結(jié)

    在計(jì)算機(jī)編程中,經(jīng)常需要對(duì)文本數(shù)據(jù)進(jìn)行處理和分析,字符統(tǒng)計(jì)是其中一個(gè)常見任務(wù),本文將詳細(xì)介紹如何使用Python進(jìn)行字符統(tǒng)計(jì),希望對(duì)大家有所幫助
    2024-01-01
  • 解決Keras中CNN輸入維度報(bào)錯(cuò)問題

    解決Keras中CNN輸入維度報(bào)錯(cuò)問題

    這篇文章主要介紹了解決Keras中CNN輸入維度報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python實(shí)現(xiàn)貪吃蛇小游戲(雙人模式)

    Python實(shí)現(xiàn)貪吃蛇小游戲(雙人模式)

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)雙人模式的貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python tkinter實(shí)現(xiàn)桌面軟件流程詳解

    Python tkinter實(shí)現(xiàn)桌面軟件流程詳解

    這篇文章主要介紹了Python tkinter做一個(gè)好用的桌面軟件,100%你會(huì)愛上它,文中的示例代碼講解詳細(xì),快跟小編一起動(dòng)手試一試吧
    2022-10-10

最新評(píng)論