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局域网聊天相关推荐

  1. Qt python局域网聊天(二)

    Qt python局域网聊天 一.准备 工欲善其事,必先利其器,要想成员一个优秀的程序员,一款强大的,合适的IDE或编辑器是无可或缺的,当然大牛除外,本次项目使用的是Vscode,系统环境是Ubunt ...

  2. Python 局域网即时通讯工具

    刚刚接触Python, 小白一个 为了学习Python, 所以试着写了一个局域网聊天的小工具 如果代码有什么问题,希望大家能给予指正,非常感谢 源代码连接(GitHub) 已生成EXE文件,可在Win ...

  3. 一个程序员的局域网聊天

    新的一年,新的开始,局域网聊天过去已经成为过去,只有未来才是掌握在自己手中的. 也许我现在还不是一个真正的局域网聊天,不过成为一名优秀的局域网聊天是我现在努力的方向.也许局域网聊天的确比较累,也许局域 ...

  4. C# Socket编程实现简单的局域网聊天器

    前言 最近在学习C# Socket相关的知识,学习之余,动手做了一个简单的局域网聊天器.有萌生做这个的想法,主要是由于之前家里两台电脑之间想要传输文件十分麻烦,需要借助QQ,微信或者其他第三方应用,基 ...

  5. c++设计局域网聊天工具

    好的.设计局域网聊天工具的步骤如下: 确定聊天工具的目的和功能.这可能包括发送文本消息.语音消息.图像和视频,以及其他功能. 选择编程语言.C 语言是一种常用的选择,但也可以使用其他语言,如 C++. ...

  6. NoneBot2,基于Python的聊天机器人

    NoneBot2,基于Python的聊天机器人 第一步,配置python 第二步,配置[go-cqhttp](https://github.com/Mrs4s/go-cqhttp) 第三步,配置[No ...

  7. Python局域网socket无法连接的问题解决

    Python局域网socket无法连接的问题解决 服务器端的socket监听的是否是服务器的IP地址(并不是什么'localhost'或者'127.0.0.1'这种).即客户端需要连接的IP地址填入即 ...

  8. 服务器如何向c winform推送信息,C局域网聊天工具消息推送实现思路与源码.doc

    C局域网聊天工具消息推送实现思路与源码 C#局域网聊天工具怎么实现? 网络通讯编程的基础便是协议,信息的发送常用的协议有面向连接的TCP协议,以及不面向连接的UDP协议TCP:Transmission ...

  9. javase基础socket编程之局域网聊天,局域网文件共享

    2017年06月04日  23点25分 javase基础学完可以做什么,javase实现局域网聊天室 包含内容:基础语法,面向对象,多线程,IO流,GUI编程,网络编程(udp) 实现功能:局域网群聊 ...

最新文章

  1. 【S操作】冰箱正常运行监控系统需求整理
  2. 使用FastReport报表工具生成图片格式文档
  3. 安卓系统为何这么容易被黑客入侵
  4. Kafka自动提交offset设置
  5. VGMP报文封装格式简介
  6. 快二游戏数据分析_1.更快的数据分析
  7. 2021财经直播系统源码 H5直播聊天室 金融财经 喊单系统 股票外汇直播间
  8. 51单片机学习笔记(2)——51单片机简介
  9. 摸爬滚打半年,我是如何从小白进阶到渗透测试工程师
  10. cocos 节点坐标和世界坐标转换 个人理解与应用
  11. 位,字节,字符的区别是什么?
  12. 比较计算机动画与传统动画的异同,定格动画和传统动画有什么区别?基本一样吧?...
  13. 调研报告之——可见光通信与可见光定位
  14. 计算机毕业设计之java+ssm基于个人需求的外卖订餐推荐系统
  15. comsol如何定义狄利克雷边界_COMSOL中周期性边界条件的应用
  16. TMS320F28377S 学习笔记1 GPIO及学习资料
  17. VMware虚拟机解决空间不足,增加磁盘空间(磁盘扩容)
  18. MySQL运行原理与基础架构
  19. 工业螺旋齿轮行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  20. 微信缓存导致调整内容不生效

热门文章

  1. 计算一个三位数的个位,十位,百位之和
  2. wordpress修复插件_关于WordPress及其修复方法的15个最烦人的事情
  3. Visual Assis 破解
  4. cad展点kszd小程序_CAD展点程序lisp
  5. 一种基于OpenCV的三维重建实现方案
  6. MQTT.fx客户端使用方法
  7. 【CSDN|每日一练】n边形划分(草稿,细节未完成)
  8. NLP 第五周 语言模型,bert(2)
  9. ActiveMQ知识概括
  10. 沪穗深百万地铁族担心:花生WiFi到底安全吗?