Python使用Socket实现简单聊天程序


Posted in Python onFebruary 28, 2020

b2b模式的聊天工具

服务端:

# 链接
while True:
 print('等待连接...')
 sock,adr = server_socket.accept()
 while True:
  try:
   # 接受数据
   data = sock.recv(1024)
   print(adr[0] + '发来消息:', data.decode())
   # 发送数据
   send_msg = input("请输入发送内容>>").strip()
   sock.send(send_msg.encode('utf-8'))
  except ConnectionResetError as e:
   print('%s断开连接!' %adr[0])
   break
 # 关闭本次连接
 sock.close()
# 关闭socket
server_socket.close()

客户端:

import socket

# 设置服务器ip和端口号
host_ip = '192.168.31.207'
port = 8896
client_socket = socket.socket()
client_socket.connect((host_ip,port))

while True:
 send_msg = input('请输入内容>>').strip()
 if send_msg == '':
  continue
 client_socket.send(send_msg.encode())
 recv_data = client_socket.recv(1024)
 print(host_ip+"回复:"+recv_data.decode())

client_socket.close()

目前只支持客户端发一句,服务端发一句这种模式。

超过一句内容后,发出去的内容对方接收不到

结果:

Python使用Socket实现简单聊天程序Python使用Socket实现简单聊天程序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
Python字符串格式化输出方法分析
Apr 13 Python
Python执行时间的计算方法小结
Mar 17 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
python写一个md5解密器示例
Feb 23 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
python 判断linux进程,并杀死进程的实现方法
Jul 01 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
python获取整个网页源码的方法
Aug 03 Python
在python3中使用shuffle函数要注意的地方
Feb 28 #Python
Python对称的二叉树多种思路实现方法
Feb 28 #Python
pycharm如何实现跨目录调用文件
Feb 28 #Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 #Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 #Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 #Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 #Python
You might like
PHP n个不重复的随机数生成代码
2009/06/23 PHP
php 中英文语言转换类
2011/09/07 PHP
Destoon模板制作简明教程
2014/06/20 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
Laravel中使用自己编写类库的3种方法
2015/02/10 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
pycharm设置注释颜色的方法
2018/05/23 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
UNIX命令速查表
2012/03/10 面试题
廉洁校园实施方案
2014/05/25 职场文书
学习型班组申报材料
2014/05/31 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
2014年班组长工作总结
2014/11/20 职场文书
大学四年个人总结
2015/03/03 职场文书
二审答辩状格式
2015/05/22 职场文书
工作简历的自我评价
2019/05/16 职场文书
Java常用函数式接口总结
2021/06/29 Java/Android
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS