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 欢迎转载,也请保留这段声明.谢谢! 我们已经讲解了物理层.连接层和网络层.最开始的 ...
随机推荐
- 解决centos7命令行中文乱码
-------------centos7解决中文乱码问题[root@localhost ~]# cat /etc/locale.conf LANG=en_US.UTF-8[root@localhost ...
- 02-Unity深入浅出(二)
一. Unity声明周期 Unity容器为我们提供了6种生命周期,便于我们根据项目需求来选择使用. (1). 瞬时.默认省略即为瞬时,无论单线程还是多线程,每次都重新创建对象.new Transien ...
- Char类型与Sting类型的数字字符转换时的不同点
这是在一次编程时的bug里偶然发现的一个问题.在C#中,单引号默认是char类型字符,而双引号默认是string类型字符.对于char类型的数字字符,通过强制类型转换或者convert转换,转换成的整 ...
- EFCodeFirst示例
1.定义一个基础模板类 namespace WebApplication1.Models { /// <summary> /// 可持久到数据库的领域模型的基类. /// </sum ...
- 信号量Semaphore
信号量说简单点就是为了线程同步,或者说是为了限制线程能运行的数量. 那它又是怎么限制线程的数量的哩?是因为它内部有个计数器,比如你想限制最多5个线程运行,那么这个计数器的值就会被设置成5,如果一个线程 ...
- 四十、Linux 线程——互斥锁和读写锁
40.1 互斥锁 40.1.1 介绍 互斥锁(mutex)是一种简单的加锁的方法来控制对共享资源的访问. 在同一时刻只能有一个线程掌握某个互斥锁,拥有上锁状态的线程能够对共享资源进行访问. 若其他线程 ...
- 第26月第23天 nsobject 单例 CFAbsoluteTimeGetCurrent
1.nsobject 单例 sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/ ...
- vue Transfer 穿梭框
Element Transfer组件默认支持单个list的穿梭 现业务需要支持两个list,效果如下 实现思路: 1.有选中才可穿梭 2.已穿梭源数据减少.目标增加(双向) 边界条件: 存储旧List ...
- 自定义Banner
Spring Boot项目启动时,默认的打印样式如下 自定义 在/src/main/resources目录下新建banner.txt,在里面输入要打印的文字即可,例如: 图形制作网站:http://w ...
- 🍓 react,jroll滑动删除 🍓
import React, { Component } from 'react'; import '../src/css/reset.css'; import '../src/css/delete.c ...