python局域网聊天
来源:互联网 发布:制作工作证的软件 编辑:程序博客网 时间:2024/06/03 16:43
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 socketimport 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 socketimport 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())
简单的局域网聊天就完成了。
阅读全文
1 0
- python局域网聊天
- Python 实现简单的局域网聊天
- 局域网聊天
- 局域网聊天
- python编写简易聊天室实现局域网内聊天
- 局域网聊天9月局域网聊天
- Netmsg 局域网聊天程序
- 局域网聊天程序源码
- 局域网聊天连接全集
- udp局域网聊天
- net send 局域网聊天
- Qt 局域网聊天
- 关于“局域网聊天”
- “局域网聊天”开始了
- 局域网聊天2011记住
- 局域网聊天界面
- JAVA实现局域网聊天
- 局域网聊天(UDP)
- 如何快速爬取B站全站视频信息
- 使用 pyinstaller 把python脚本打包成 windows exe 可执行程序
- new与delete和new[ ]与delete[ ]
- PBOC-3DES-MAC加密算法(测试通过)
- 前端之js易混淆(二)
- python局域网聊天
- 面向对象三大特性五大原则 + 低耦合高内聚
- Android新特性介绍,ConstraintLayout完全解析
- 浅谈Java中的hashcode方法
- Oracle_exception产生原因
- java 扫描Class文件获取接口对应的实现类及其方法util
- @media min-width 失效
- vc++记录 打开资源视图界面
- 现场赛日历图片1