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杀死一个线程的方法
Sep 06 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
最大K个数问题的Python版解法总结
Jun 16 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
pycharm打开命令行或Terminal的方法
Jan 16 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
Apr 16 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
Python日志器使用方法及原理解析
Sep 27 Python
Django windows使用Apache实现部署流程解析
Oct 12 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 Python
解决python 输出到csv 出现多空行的情况
Mar 24 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
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
[JS]点出统计器
2020/10/11 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
Python 列表list使用介绍
2014/11/30 Python
python中循环语句while用法实例
2015/05/16 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
Python帮你识破双11的套路
2019/11/11 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
幼儿教师自我鉴定
2013/11/02 职场文书
开业主持词
2014/03/21 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
心理学培训心得体会
2016/01/22 职场文书
七年级作文之冬景
2019/11/07 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android