Python socket聊天脚本代码实例
作者:就是想学习 时间:2023-02-02 21:33:16
这篇文章主要介绍了Python socket聊天脚本代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
没有前端,多开了一条线程用于接收信息。
服务器端:
# -*- coding:utf-8 -*-
import socket
import threading
class Sock_Server:
def __init__(self):
self.host = '192.168.1.11' # 获取主机名
self.port = 12345 # 端口
self.ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置模式
self.ser.bind((self.host, self.port))
self.ser.listen(5)
print('等待客户端连接:')
self.sock, self.addr = self.ser.accept() # 被动接口客户端连接。
print(f'客户:{self.addr},已经连接')
def recv(self): # 接收信息模块
try:
while True:
recv_info = self.sock.recv(1024)
if recv_info:
print('\n收到消息:', recv_info.decode())
if recv_info == '886':
self.sock.close()
self.ser.close()
print('聊天结束!over')
break
finally:
self.sock.close()
self.ser.close()
def send(self):
try:
while True:
send_info = input('请输入你要发送的内容:')
self.sock.send(send_info.encode())
if send_info == '886':
self.sock.close()
self.ser.close()
print('聊天结束!over')
break
finally:
self.sock.close()
self.ser.close()
if __name__ == '__main__':
sock = Sock_Server()
t1 = threading.Thread(target=sock.recv)
t1.start()
sock.send()
客户端:
# -*- coding:utf8 -*-
import socket
import threading
class Sock_Cli:
def __init__(self):
self.host = socket.gethostname() # 获取主机名
self.port = 12345 # 端口
self.ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置模式
self.ser.connect((self.host, self.port))
def recv(self): # 接收信息模块
try:
while True:
recv_info = self.ser.recv(1024)
if recv_info:
print('\n收到消息:', recv_info.decode())
if recv_info == '886':
self.ser.close()
print('聊天结束!over')
break
finally:
self.ser.close()
def send_info(self):
try:
while True:
send_info = input('请输入你要发送的内容:')
self.ser.sendall(send_info.encode())
if send_info == '886':
self.ser.close()
print('聊天结束!over')
break
finally:
self.ser.close()
if __name__ == '__main__':
cli = Sock_Cli()
t1 = threading.Thread(target=cli.recv)
t1.start()
cli.send_info()
socket是进程间进行通讯很好的方式。
整个代码在886输入退出还存在一些问题,不改了。
来源:https://www.cnblogs.com/sidianok/p/12003906.html
标签:Python,socket,聊天,脚本
0
投稿
猜你喜欢
go语言实现一个最简单的http文件服务器实例
2024-02-21 21:52:41
海量数据库的查询优化及分页算法方案集合2/2
2024-01-22 22:09:38
MySQL备份与恢复之冷备(1)
2024-01-26 13:37:50
MSSQL存储过程学习笔记一 关于存储过程
2024-01-17 18:59:43
使用Pytorch+PyG实现MLP的详细过程
2023-05-03 17:48:14
常用的10个Python实用小技巧
2023-03-21 13:59:23
Python 使用 Pillow 模块给图片添加文字水印的方法
2022-06-13 04:13:37
浅谈python输出列表元素的所有排列形式
2023-02-10 11:09:39
selenium3.0+python之环境搭建的方法步骤
2023-03-20 06:00:22
Python编程实现的简单神经网络算法示例
2022-01-06 05:53:17
Python中的Function定义方法第1/2页
2021-05-10 20:33:49
DevOps,CI,CD,自动化简述
2022-06-22 06:47:27
Python自动登录QQ的实现示例
2021-09-07 19:50:26
Python爬虫之Spider类用法简单介绍
2023-04-23 15:03:27
python实现图像最近邻插值
2023-02-01 00:03:34
Script块放在另一个Script 块内方法
2009-02-04 15:43:00
升级SQL Server 2008数据库引擎
2009-03-25 12:58:00
Python中的Matplotlib模块入门教程
2023-08-14 23:05:16
禁止拷贝网页内容的js代码
2024-04-25 13:07:50
Python嵌套函数,作用域与偏函数用法实例分析
2022-12-03 08:46:15