python编写简易聊天室实现局域网内聊天功能


Posted in Python onJuly 28, 2018

本文实例为大家分享了python实现局域网内聊天功能的具体代码,供大家参考,具体内容如下

功能:

可以向局域网内开启接收信息功能的ip进行发送信息,我们可以写两段端口不同的代码来实现在一台电脑上与自己聊天.

关键点:

要想实现此功能必须将程序的端口固定

from socket import *


def udp_send(udp_socket):
  # 发送消息 接收用户输入内容
  send_mes = input("请输入发送内容:")
  # 接收用户输入ip
  ip = input("请输入ip地址:")
  # 接收用户输入端口号
  port = int(input("请输入端口号"))
  # 发送消息 内容进行编码
  udp_socket.sendto(send_mes.encode("gbk"), (ip, port))


def udp_recvfrom(udp_socket):
  # 接收消息 最多4096个字节 
  get_mes, get_ip = udp_socket.recvfrom(4096)
  print("收到来自%s的消息:%s" % (str(get_ip), get_mes.decode("gbk")))


def main():
  # 创建套接字
  udp_socket = socket(AF_INET, SOCK_DGRAM)
  # 设置固定端口
  udp_socket.bind(("", 8889))

  while True:
    print("*" * 50)
    print("----------无敌聊天器----------")
    print("1.发送消息")
    print("2.接收消息")
    print("0.退出系统")
    print("*" * 50)

    user = input("请输入要执行的操作:")

    if user == "1":

      udp_send(udp_socket)

    elif user == "2":

      udp_recvfrom(udp_socket)

    elif user == "0":
      break

    else:

      print("输入有误")
  # 关闭套接字
  udp_socket.close()


if __name__ == "__main__":
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python BeautifulSoup库抓取58手机维修信息
Nov 21 Python
Python根据区号生成手机号码的方法
Jul 08 Python
Python的pycurl包用法简介
Nov 13 Python
Python批量修改文本文件内容的方法
Apr 29 Python
python基础教程之Filter使用方法
Jan 17 Python
解决Python requests 报错方法集锦
Mar 19 Python
python和ruby,我选谁?
Sep 13 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
python numpy 反转 reverse示例
Dec 04 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
pyinstaller还原python代码过程图解
Jan 08 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 #Python
Python Socket编程之多线程聊天室
Jul 28 #Python
python实现点对点聊天程序
Jul 28 #Python
基于python实现聊天室程序
Jul 27 #Python
Python中return self的用法详解
Jul 27 #Python
TensorFlow打印tensor值的实现方法
Jul 27 #Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 #Python
You might like
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
iOS10推送通知开发教程
2016/09/19 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
如何使用python爬取csdn博客访问量
2016/02/14 Python
Python正则表达式使用经典实例
2016/06/21 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
python队列Queue的详解
2019/05/10 Python
python pymysql库的常用操作
2020/10/16 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
送货司机岗位职责
2013/12/11 职场文书
广告宣传策划方案
2014/05/21 职场文书
应聘教师自荐书
2014/06/16 职场文书
工作经历证明书范文
2014/11/02 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
贫困证明书范文
2015/06/16 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android