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协议的时间同步机制-----编码的更多相关文章

  1. TCP/IP详解学习笔记(6)-UDP协议

    1.UDP简要介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议. 2.UDP协议头 2.1.UDP端口号 ...

  2. TCP/IP协议网络编程以及UDP和TCP之传输协议

    1.什么是TCP/IP协议? 网络编程协议有很多,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal 传输控制协议/英特网 ...

  3. [计算机网络] DNS何时使用TCP协议,何时使用UDP协议

    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 先简单介绍下TCP与UDP. ...

  4. tcp上传大文件举例、udp实现qq聊天、socketserver模块实现并发

    为什么会出现粘包现象(day31提到过,这里再举个例子) """首先只有在TCP协议中才会出现粘包现象,因为TCP协议是流式协议它的特点是将数据量小并且时间间隔比较短的数 ...

  5. TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...

  6. 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    [转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...

  7. 接口与协议学习笔记-Ethernet UDP通信协议(一)

    总线(BUS,即公共汽车,数据的公共传输路线)分类的方式有很多,如被分为外部和内部总线.系统总线和非系统总线等等,下面是几种最常用的分类方法.另外,总线的传输核心思想是多路复用:时分多路复用-TDMA ...

  8. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  9. (转)协议森林07 傀儡 (UDP协议)

    协议森林07 傀儡 (UDP协议) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经讲解了物理层.连接层和网络层.最开始的 ...

随机推荐

  1. 解决centos7命令行中文乱码

    -------------centos7解决中文乱码问题[root@localhost ~]# cat /etc/locale.conf LANG=en_US.UTF-8[root@localhost ...

  2. 02-Unity深入浅出(二)

    一. Unity声明周期 Unity容器为我们提供了6种生命周期,便于我们根据项目需求来选择使用. (1). 瞬时.默认省略即为瞬时,无论单线程还是多线程,每次都重新创建对象.new Transien ...

  3. Char类型与Sting类型的数字字符转换时的不同点

    这是在一次编程时的bug里偶然发现的一个问题.在C#中,单引号默认是char类型字符,而双引号默认是string类型字符.对于char类型的数字字符,通过强制类型转换或者convert转换,转换成的整 ...

  4. EFCodeFirst示例

    1.定义一个基础模板类 namespace WebApplication1.Models { /// <summary> /// 可持久到数据库的领域模型的基类. /// </sum ...

  5. 信号量Semaphore

    信号量说简单点就是为了线程同步,或者说是为了限制线程能运行的数量. 那它又是怎么限制线程的数量的哩?是因为它内部有个计数器,比如你想限制最多5个线程运行,那么这个计数器的值就会被设置成5,如果一个线程 ...

  6. 四十、Linux 线程——互斥锁和读写锁

    40.1 互斥锁 40.1.1 介绍 互斥锁(mutex)是一种简单的加锁的方法来控制对共享资源的访问. 在同一时刻只能有一个线程掌握某个互斥锁,拥有上锁状态的线程能够对共享资源进行访问. 若其他线程 ...

  7. 第26月第23天 nsobject 单例 CFAbsoluteTimeGetCurrent

    1.nsobject 单例 sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/ ...

  8. vue Transfer 穿梭框

    Element Transfer组件默认支持单个list的穿梭 现业务需要支持两个list,效果如下 实现思路: 1.有选中才可穿梭 2.已穿梭源数据减少.目标增加(双向) 边界条件: 存储旧List ...

  9. 自定义Banner

    Spring Boot项目启动时,默认的打印样式如下 自定义 在/src/main/resources目录下新建banner.txt,在里面输入要打印的文字即可,例如: 图形制作网站:http://w ...

  10. 🍓 react,jroll滑动删除 🍓

    import React, { Component } from 'react'; import '../src/css/reset.css'; import '../src/css/delete.c ...