最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)聊天程序

 更新時(shí)間:2018年07月28日 08:44:17   作者:csuzhucong  
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)聊天程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

用Python實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的聊天,2個(gè)程序,一個(gè)是client.py,一個(gè)是server.py,通過本機(jī)地址127.0.0.1連接進(jìn)行通信,利用多線程把發(fā)送消息和接收消息分開獨(dú)立進(jìn)行。

client代碼:

import socket
import sys
import threading
import time
 
class client():
 def __init__(self):
  self.s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  self.ip = "127.0.0.1"
 
 def connect(self):
  try:
   self.s.connect((self.ip,8888))
   print("connect success")
   print('connect time: '+time.ctime())
  except ConnectionError:
   print('connect error')
   sys.exit(-1)
  except:
   print('unexpect error')
   sys.exit(-1)
 
 def send_sth(self):
  while True:
   sth=input('say something:\n')
   try:
    self.s.sendall(sth.encode('utf-8'))
   except ConnectionError:
    print('connect error')
    sys.exit(-1)
   except:
    print('unexpect error')
    sys.exit(-1)
 
 def receive(self):
  while True:
   try:
    r=self.s.recv(1024)
    print ('get message:'+r.decode('utf-8'))
   except ConnectionError:
    print('connect error')
    sys.exit(-1)
   except:
    print('unexpect error')
    sys.exit(-1)
 
c1 = client()
c1.connect()
threading._start_new_thread(c1.receive,())
c1.send_sth()

server代碼:

import socket
import sys
import threading
import time
 
def server():
 def bind():
  HOST='127.0.0.1'
  s.bind((HOST,8888))
  print("bind ok")
 
 def listen():
  s.listen(10)
  print ('Socket now listening')
 
 def send_sth(conn):
  while True:
   try:
    sth=input('say something:\n')
    conn.sendall(sth.encode('utf-8'))
   except ConnectionError:
    print('connect error')
    sys.exit(-1)
   except:
    print('unexpect error')
    sys.exit(-1)
 
 def recv(conn):
   while True:
   try:
    data=conn.recv(1024)
    data2=data.decode('utf-8')
    print('get message:'+data2)
   except ConnectionError:
    print('connect error')
    sys.exit(-1)
   except:
    print('unexpect error')
    sys.exit(-1)
 
 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
 bind()
 listen()
 conn,addr=s.accept()
 print("connect success")
 print('connect time: '+time.ctime())
 threading._start_new_thread(recv,(conn,))
 send_sth(conn)
 
if __name__=='__main__':
 server()

開啟多線程有2種方法,上面2個(gè)程序都是用函數(shù)的方法,還有一種方法是用類繼承threading類

代碼:

import socket
import threading
class client(threading.Thread):
 def __init__(self,sth):
  threading.Thread.__init__(self)
  self.sth=sth
 def run(self):
  s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  ip="127.0.0.1"
  try:
   s.connect((ip,8888))
  except :
   print('con error')
   exit()
  #print("connect success")
  s.sendall(self.sth.encode('utf-8'))
  #print("send success")
  try:
   r=s.recv(1024)
  except:
   print('recv error')
   exit()
  print (r.decode('utf-8'))
c1=client('hello 1')
c1.start()
c2=client('hello 2')
c2.start()

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

相關(guān)文章

  • python如何通過FastAPI構(gòu)建復(fù)雜的Web?API

    python如何通過FastAPI構(gòu)建復(fù)雜的Web?API

    FastAPI是一個(gè)現(xiàn)代的、快速(高性能)的Web框架,用于構(gòu)建API,這篇文章主要介紹了python如何通過FastAPI構(gòu)建復(fù)雜的Web?API,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • 基于python,Matplotlib繪制函數(shù)的等高線與三維圖像

    基于python,Matplotlib繪制函數(shù)的等高線與三維圖像

    這篇文章主要介紹了基于python,Matplotlib繪制函數(shù)的等高線與三維圖像,函數(shù)的等高線及其三維圖像的可視化方法,下面一起來學(xué)習(xí)具體內(nèi)容吧,需要的小伙伴可以參考一下
    2022-01-01
  • Python爬蟲+Tkinter制作一個(gè)翻譯軟件的示例

    Python爬蟲+Tkinter制作一個(gè)翻譯軟件的示例

    這篇文章主要介紹了Python爬蟲+Tkinter制作一個(gè)翻譯軟件的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • pandas read_excel()和to_excel()函數(shù)解析

    pandas read_excel()和to_excel()函數(shù)解析

    這篇文章主要介紹了pandas read_excel()和to_excel()函數(shù)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 一文弄懂10大Pandas的索引

    一文弄懂10大Pandas的索引

    索引在我們的日常生活中其實(shí)是很常見的,本文主要介紹了一文弄懂10大Pandas的索引,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • Django model.py表單設(shè)置默認(rèn)值允許為空的操作

    Django model.py表單設(shè)置默認(rèn)值允許為空的操作

    這篇文章主要介紹了Django model.py表單設(shè)置默認(rèn)值允許為空的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 詳解pycharm的python包opencv(cv2)無代碼提示問題的解決

    詳解pycharm的python包opencv(cv2)無代碼提示問題的解決

    這篇文章主要介紹了詳解pycharm的python包opencv(cv2)無代碼提示問題的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python使用wxPython和PyMuPDF提取PDF頁面指定頁數(shù)的內(nèi)容

    Python使用wxPython和PyMuPDF提取PDF頁面指定頁數(shù)的內(nèi)容

    在本篇博客中,我們將探討如何使用wxPython和PyMuPDF庫創(chuàng)建一個(gè)簡單的Bokeh應(yīng)用程序,用于選擇PDF文件并提取指定頁面的內(nèi)容,并將提取的內(nèi)容顯示在文本框中,需要的朋友可以參考下
    2023-08-08
  • Python RabbitMQ實(shí)現(xiàn)簡單的進(jìn)程間通信示例

    Python RabbitMQ實(shí)現(xiàn)簡單的進(jìn)程間通信示例

    這篇文章主要介紹了Python RabbitMQ實(shí)現(xiàn)簡單的進(jìn)程間通信示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于Tensorflow中的tf.train.batch函數(shù)的使用

    關(guān)于Tensorflow中的tf.train.batch函數(shù)的使用

    本篇文章主要介紹了關(guān)于Tensorflow中的tf.train.batch函數(shù)的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04

最新評(píng)論

罗平县| 黑龙江省| 新邵县| 临夏县| 广州市| 博湖县| 西城区| 锡林郭勒盟| 孝感市| 会同县| 临夏县| 酉阳| 新沂市| 涡阳县| 民权县| 都匀市| 马边| 云安县| 柳江县| 杭州市| 清流县| 宜兴市| 高清| 江油市| 汾西县| 广宁县| 临清市| 巢湖市| 万山特区| 黄大仙区| 洞口县| 新绛县| 许昌市| 绍兴县| 博客| 濮阳市| 乌恰县| 惠州市| 青田县| 班玛县| 高唐县|