tcp和udp协议的聊天 和udp协议的时间同步机制-----编码
tcp协议聊天
服务端::
客户端
udp协议的聊天
- ############ udp协议 ###########
- 服务器
- import socket
- sk = socket.socket(type = socket.SOCK_DGRAM) ##udp协议
- sk.bind((ip地址,端口号))
- while 1:
- msg_r,addr = sk.recvfrom(1024) ##接收来自哪里的消息
- print(msg_r.decode('utf-8'),addr) ##把收到的内容解码出来
- if msg_r.decode('utf-8') == 'q':
- continue
- user = input('>>>')
- sk.sendto(user.encode('utf-8'),addr)
- if user == 'q':
- break
- sk.close()
- 客户端:
- import socket
- sk = socket.socket(type = socket.SOCK_DGRAM)
- while 1:
- mag = input('>>>>')
- sk.sendto(mag.encode('utf-8')(服务器ip地址,服务器那边的端口号)
- if mag == 'q':
- break
- mag_r,addr = sk.recvfrom(1024)
- print(mag_r.decode(''utf-8))
- if mag_r.decode() == 'q':
- break
- ################ 时间同步机制 ####################
- 服务器:
- import socket ##引进socket模块
- import time ##引进时间模块
- sk = socket.socket(type = socket.SOCK_DGRAM) ##实例化 DGRAM 是udp 这个位置是固定的
- sk.bind(ip地址,端口号)
- while 1:
- tm_format,addr = sk.recvfrom(1024) ##接收的是1024个字节
- tm_format = tm_format.decode('utf-8') ##%Y/%m/%d %H:%M:%S
- local_tm = time.strftime(tm_format) ##获取到了对应格式的当前时间
- sk.sendto(local_tm.encode('utf-8'),addr) ##返回给客户端
- 客户端:
- import socket ##引入socket模块
- import time ##引入time模块
- sk = socket.socket(type = socket.SOCK_DGRAM) ##udp协议固定的
- tm_format = input('>>>') ##输入
- while 1:
- sk.sendto(tm_format.encode('utf-8'),(ip地址,端口号)) ##发送出去
- local_tm,addr = sk.recvfrom(1024) ##接收1024个字节
- print(local_tm,decode('utf-8')) ##解码
- time.sleep(2) ##停顿2秒
tcp和udp协议的聊天 和udp协议的时间同步机制-----编码的更多相关文章
- TCP/IP详解学习笔记(6)-UDP协议
1.UDP简要介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议. 2.UDP协议头 2.1.UDP端口号 ...
- TCP/IP协议网络编程以及UDP和TCP之传输协议
1.什么是TCP/IP协议? 网络编程协议有很多,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal 传输控制协议/英特网 ...
- [计算机网络] DNS何时使用TCP协议,何时使用UDP协议
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 先简单介绍下TCP与UDP. ...
- tcp上传大文件举例、udp实现qq聊天、socketserver模块实现并发
为什么会出现粘包现象(day31提到过,这里再举个例子) """首先只有在TCP协议中才会出现粘包现象,因为TCP协议是流式协议它的特点是将数据量小并且时间间隔比较短的数 ...
- TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...
- 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
[转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...
- 接口与协议学习笔记-Ethernet UDP通信协议(一)
总线(BUS,即公共汽车,数据的公共传输路线)分类的方式有很多,如被分为外部和内部总线.系统总线和非系统总线等等,下面是几种最常用的分类方法.另外,总线的传输核心思想是多路复用:时分多路复用-TDMA ...
- 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 Java全栈大联盟 ...
- (转)协议森林07 傀儡 (UDP协议)
协议森林07 傀儡 (UDP协议) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经讲解了物理层.连接层和网络层.最开始的 ...
随机推荐
- Python正则匹配之有名分组
参考:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html # re.match import re m = re.match(r'( ...
- Image转Base64
今天和一个朋友联调图片转Base64时发现一个问题 public static string ImageToBase64(Image img) { BinaryFormatter binFormatt ...
- IP白名单
一.什么是IP白名单 公众平台后台新增了IP白名单功能.通过开发者ID及密码调用获取access_token接口时,需要设置访问来源IP为白名单. IP白名单是指一组IP列表,只有该列表中的IP地址的 ...
- rabbitMQ学习1:消息队列介绍与rabbitmq安装使用
1. 什么是消息队列 生活里的消息队列,如同邮局的邮箱, 如果没邮箱的话, 邮件必须找到邮件那个人,递给他,才玩完成,那这个任务会处理的很麻烦,很慢,效率很低 但是如果有了邮箱, 邮件直接丢给邮箱,用 ...
- Coursera, Machine Learning, SVM
Support Vector Machine (large margin classifiers ) 1. cost function and hypothesis 下面那个紫色线就是SVM 的cos ...
- ThinkPHP5基础学习
一.目录与文件结构 二.控制器 三.数据库 四.模型 五.模板
- git修改文件夹名字
git mv -f oldfolder newfolder git add -u newfolder (-u选项会更新已经追踪的文件和文件夹) git commit -m "changed ...
- 【mmall】mybatis三剑客
mybatis-generator mybatis-plugin Mybatis Plugin插件安装破解及使用:http://blog.csdn.net/u011410529/article/det ...
- zabbix系列 ~ linux监控相关
Linux 监控 一 相关名词解释 cpu context switch (上下文切换) 1 定义 CPU给每个任务一定的服务时间,当时间片轮转的时候,需要把当前状态保存下来,同时加载下一个 ...
- RabbitMQ channel 参数详解
1.Channel 1.1 channel.exchangeDeclare(): type:有direct.fanout.topic三种durable:true.false true:服务器重启会保留 ...