python局域网聊天
Python 提供了两个级别访问的网络服务。:
1.低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。
2.高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。
套接字的创建语法
socket.socket([family[, type[, proto]]])
family: 套接字家族可以使AF_UNIX或者AF_INET
type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM
protocol: 一般不填默认为0.
我用低级别的网络服务做了一个python的局域网的聊天,只是控制台的简单聊天,还要升级为一个GUI的聊天
首先,我们聊天就需要一个服务器,有服务器就能聊天,称为服务套接字
import socket
import threading
#创建服务套接字
ss = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("建立服务套接字")
ss.bind(("0.0.0.0",8888))#服务套接字绑定端口号,绑定主机
#ss.bind(("0.0.0.0"(localhost是本机)是广域网,也可用作局域网,端口,避免与本电脑其他端口相同))
print("绑定端口和主机")
ss.listen(5)#控制聊天人数
#接受客户套接字
print("开始等待客户的请求")
c = ss.accept()#线程阻塞
print("某个客户链接到我了")
# mag=c[0].recv(1024)
# print("mag:",mag.decode())#decode()解码,接收的数据解码
# c[0].send("是".encode())
#线程 函数
def myrevc(c):while True:msg = c.recv(1024)#当没有消息的时候休息,阻塞print(msg.decode())
threading._start_new_thread(myrevc,(c[0],))
while True:msg = input()c[0].send(msg.encode())
这个服务器建造好了就差客户端了,具体注意的都加在代码里的注释里了。接下来需要客户套接字了。
import socket
import threading
#创建客户套接字
u = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print("创建客户套接字")
u.connect(("192.168.66.180",9999))#链接对方不成功抛出异常
#这里是与服务器对应的,需要对应的ip和端口,
print("我已连接到服务")
# u.send("你是晓敏吗?".encode())#encode()编码
# mag=u.recv(1024)
# print(mag.decode())
def myrevc(c):while True:msg = c.recv(1024)#当没有消息的时候休息,阻塞print(msg.decode())
threading._start_new_thread(myrevc,(u,))
while True:print("输入")msg = input()u.send(msg.encode())
简单的局域网聊天就完成了。
python局域网聊天相关推荐
- Qt python局域网聊天(二)
Qt python局域网聊天 一.准备 工欲善其事,必先利其器,要想成员一个优秀的程序员,一款强大的,合适的IDE或编辑器是无可或缺的,当然大牛除外,本次项目使用的是Vscode,系统环境是Ubunt ...
- Python 局域网即时通讯工具
刚刚接触Python, 小白一个 为了学习Python, 所以试着写了一个局域网聊天的小工具 如果代码有什么问题,希望大家能给予指正,非常感谢 源代码连接(GitHub) 已生成EXE文件,可在Win ...
- 一个程序员的局域网聊天
新的一年,新的开始,局域网聊天过去已经成为过去,只有未来才是掌握在自己手中的. 也许我现在还不是一个真正的局域网聊天,不过成为一名优秀的局域网聊天是我现在努力的方向.也许局域网聊天的确比较累,也许局域 ...
- C# Socket编程实现简单的局域网聊天器
前言 最近在学习C# Socket相关的知识,学习之余,动手做了一个简单的局域网聊天器.有萌生做这个的想法,主要是由于之前家里两台电脑之间想要传输文件十分麻烦,需要借助QQ,微信或者其他第三方应用,基 ...
- c++设计局域网聊天工具
好的.设计局域网聊天工具的步骤如下: 确定聊天工具的目的和功能.这可能包括发送文本消息.语音消息.图像和视频,以及其他功能. 选择编程语言.C 语言是一种常用的选择,但也可以使用其他语言,如 C++. ...
- NoneBot2,基于Python的聊天机器人
NoneBot2,基于Python的聊天机器人 第一步,配置python 第二步,配置[go-cqhttp](https://github.com/Mrs4s/go-cqhttp) 第三步,配置[No ...
- Python局域网socket无法连接的问题解决
Python局域网socket无法连接的问题解决 服务器端的socket监听的是否是服务器的IP地址(并不是什么'localhost'或者'127.0.0.1'这种).即客户端需要连接的IP地址填入即 ...
- 服务器如何向c winform推送信息,C局域网聊天工具消息推送实现思路与源码.doc
C局域网聊天工具消息推送实现思路与源码 C#局域网聊天工具怎么实现? 网络通讯编程的基础便是协议,信息的发送常用的协议有面向连接的TCP协议,以及不面向连接的UDP协议TCP:Transmission ...
- javase基础socket编程之局域网聊天,局域网文件共享
2017年06月04日 23点25分 javase基础学完可以做什么,javase实现局域网聊天室 包含内容:基础语法,面向对象,多线程,IO流,GUI编程,网络编程(udp) 实现功能:局域网群聊 ...
最新文章
- 【S操作】冰箱正常运行监控系统需求整理
- 使用FastReport报表工具生成图片格式文档
- 安卓系统为何这么容易被黑客入侵
- Kafka自动提交offset设置
- VGMP报文封装格式简介
- 快二游戏数据分析_1.更快的数据分析
- 2021财经直播系统源码 H5直播聊天室 金融财经 喊单系统 股票外汇直播间
- 51单片机学习笔记(2)——51单片机简介
- 摸爬滚打半年,我是如何从小白进阶到渗透测试工程师
- cocos 节点坐标和世界坐标转换 个人理解与应用
- 位,字节,字符的区别是什么?
- 比较计算机动画与传统动画的异同,定格动画和传统动画有什么区别?基本一样吧?...
- 调研报告之——可见光通信与可见光定位
- 计算机毕业设计之java+ssm基于个人需求的外卖订餐推荐系统
- comsol如何定义狄利克雷边界_COMSOL中周期性边界条件的应用
- TMS320F28377S 学习笔记1 GPIO及学习资料
- VMware虚拟机解决空间不足,增加磁盘空间(磁盘扩容)
- MySQL运行原理与基础架构
- 工业螺旋齿轮行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 微信缓存导致调整内容不生效