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 相关文章推荐
Python线程的两种编程方式
Apr 14 Python
python实现的系统实用log类实例
Jun 30 Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
Python安装与基本数据类型教程详解
May 29 Python
PyTorch的深度学习入门教程之构建神经网络
Jun 27 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
python argparse传入布尔参数false不生效的解决
Apr 20 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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 spl_autoload_register实现自动加载研究
2011/12/06 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
js图片轮播效果实现代码
2020/04/18 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
python读写ini配置文件方法实例分析
2015/06/30 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
python如何写try语句
2020/07/14 Python
python温度转换华氏温度实现代码
2020/12/06 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
技术学校毕业生求职信分享
2013/12/02 职场文书
开水果连锁店创业计划书
2013/12/29 职场文书
灰雀教学反思
2014/04/28 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
对公司的意见和建议
2015/06/04 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏