python聊天软件实现_python实现点对点聊天程序
用Python实现点对点的聊天,2个程序,一个是client.py,一个是server.py,通过本机地址127.0.0.1连接进行通信,利用多线程把发送消息和接收消息分开独立进行。
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个程序都是用函数的方法,还有一种方法是用类继承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实现点对点聊天程序相关推荐
- C#毕业设计——基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码)——多功能聊天软件
基于C#+vs.net+SQL Server的多功能聊天软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+vs.net+SQL Server的多功能聊天软件设计与实现,文章末尾附有 ...
- 苹果电脑python编程软件下载_python Mac版下载-python官方下载[编程开发]-华军软件园...
python官方版是一款面向对象的解释型计算机程序设计语言,python Mac版既可以兼容之前的版本,又带来了许多功能性更新,比如支持async/await异步编程,改进了对Python Zip应用 ...
- python递归算法案例教案_Python电子教案2-1-Python程序实例解析.ppt
Python电子教案2-1-Python程序实例解析.ppt 简单说,eval()的作用是将输入的字符串内容变成Python语句,并执行这个语句.实例代码1.1使用eval()函数将用户的部分输入(T ...
- python 全部缩进一行_Python成为专业人士笔记–程序行空白及tab缩进的作用
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com python中的空白tab缩进 Python ...
- python实现简易聊天需要登录_python编写简易聊天室实现局域网内聊天功能
本文实例为大家分享了python实现局域网内聊天功能的具体代码,供大家参考,具体内容如下 功能: 可以向局域网内开启接收信息功能的ip进行发送信息,我们可以写两段端口不同的代码来实现在一台电脑上与自己 ...
- python实现语音通话_python 实现语音聊天机器人的示例代码
前言 在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求,整合了语音识别的python程序提供了其他技术无法比拟的交互性和可访问性.最重要的是,在python程序中实现语音识别非常简单.整 ...
- python聊天室源代码_Python实现文字聊天室
你是否想过用所学的Python开发一个图形界面的聊天室程序啊? 像这样的: 如果你想开发这样一个有点怀旧风格的聊天程序,那么可以接着看: 要开发这个聊天程序,你需要具备以下知识点: asyncore ...
- android点对点聊天软件,android + springboot实现点对点实时聊天
前言 这周一就须要交android大实验做业,android大实验作了一个二手商城,可是功能太少了,android老师要求大实验要有一些特点.就想着实现一下实时聊天.而后就利用周日时间试了一下.and ...
- android聊天软件大报告,大改变聊天app下载-大改变聊天神器预约 安卓版v1.0-PC6安卓网...
大改变聊天神器APP是一款专业的恋爱话术软件,大改变聊天app不仅可以教你如何撩妹,大改变聊天app还能教你如何追男神.女神,各种场景下适用的话术应有尽有,让你快速成为高情商人士. 软件介绍 大改变聊 ...
最新文章
- 打开浏览器提示下载解决方法
- 《系统集成项目管理工程师》必背100个知识点-02项目组织方式和特点
- 如何提升软件交付效能?答案未必如你所想
- 收藏 | 神经网络debug 6大技巧!
- 测测你的显示器灰阶显示
- c# c均值聚类及DBSCAN聚类
- Questions make me doubt my engineer career
- c语言指令 符号表,C语言指令、符号表
- 关于Cocos2d-x中自定义的调用注意事项
- 媒体查询Media Query
- 肤色检测一例-使用rgb颜色模型
- 教你在SQL Server数据库中设计表和字段
- 转载:c# serialport类 串口通信 hello world
- 航空公司客户价值分析R语言实现
- 华为mate50会用鸿蒙系统吗,华为Mate50Pro概念机:瀑布环绕屏+鸿蒙系统,就算涨价我也劝你买...
- TYPORA主题更换
- oracle监听启动无权限,ubuntu 下启动oracle监听失败:TNS-12555: TNS:permission denied
- ps 利用马赛克滤镜制作方格背景
- 32位服务器系统安装教程,服务器系统数据库安装教程
- 史上讲解最好的 Docker 教程,从入门到精通(建议收藏的教程)
热门文章
- 面试官:this和super有什么区别?this能调用到父类吗?
- 用好MySQL的21个好习惯!
- 看故事学知识,这篇Java代理的文章妙啊!
- Chrome浏览器必装的扩展工具
- php 文件 后缀,php如何修改文件后缀名
- EF中DB First模式下数据库中表结构变化时如何快速同步到EF模型中
- C# partial 部分类使用简单举例说明
- html5的交互标签,html5里交互元素的使用方法
- 的计时器设置_如何选择最适合自己的计时器?
- mysql count count id_mysql 为什么count(*)快于count(id)