Python中socket聊天腳本的示例分析-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)Python中socket聊天腳本的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設(shè)計師團隊。

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

服務(wù)器端:

# -*- coding:utf-8 -*-
import socket
import threading
 
class Sock_Server:
  def __init__(self):
    self.host = '192.168.1.11' # 獲取主機名
    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()    # 被動接口客戶端連接。
    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('請輸入你要發(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() # 獲取主機名
    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('請輸入你要發(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是進程間進行通訊很好的方式。

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

感謝各位的閱讀!關(guān)于“Python中socket聊天腳本的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

當前標題:Python中socket聊天腳本的示例分析-創(chuàng)新互聯(lián)
當前網(wǎng)址:http://muchs.cn/article4/djioie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站企業(yè)建站、營銷型網(wǎng)站建設(shè)、域名注冊、電子商務(wù)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)