日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python聊天软件实现_python实现点对点聊天程序

發(fā)布時間:2025/3/12 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python聊天软件实现_python实现点对点聊天程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

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個程序都是用函數(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()

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

總結

以上是生活随笔為你收集整理的python聊天软件实现_python实现点对点聊天程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。