1 网络通信协议

Tcp udp的区别 重点(*****)

TCP(Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应用:Web浏览器;文件传输程序。

UDP(User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文(数据包),尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。

直接看图对比其中差异

Tcp三次握手四次挥手(******)

2 tcp udp协议下的socket

基于TCP的socket通讯流程图片:

 import socket
 from socket import SOL_SOCKET,SO_REUSEADDR
 sk = socket.socket()
 # sk.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
 sk.bind(('127.0.0.1',8090))
 sk.listen()
 conn,addr = sk.accept()  #在这阻塞,等待客户端过来连接
 while True:
     ret = conn.recv(1024)  #接收消息  在这还是要阻塞,等待收消息
     ret = ret.decode('utf-8')  #字节类型转换为字符串中文
     print(ret)
     if ret == 'bye':        #如果接到的消息为bye,退出
         break
     msg = input('服务端>>')  #服务端发消息
     conn.send(msg.encode('utf-8'))
     if msg == 'bye':
         break

 conn.close()
 sk.close()

 只能与第一个客户端通信server端代码

server

 import socket
 sk = socket.socket()
 sk.connect(('127.0.0.1',8090)) #连接服务端

 while True:
     msg = input('客户端>>>')  #input阻塞,等待输入内容
     sk.send(msg.encode('utf-8'))
     if msg == 'bye':
         break
     ret = sk.recv(1024)
     ret = ret.decode('utf-8')
     print(ret)
     if ret == 'bye':
         break
 sk.close()

 只能与第一个客户端通信client端代码

client

基于UDP的socket通讯流程:

udp_server
 import socket
 ip_port=('127.0.0.1',9000)
 udp_sk=socket.socket(type=socket.SOCK_DGRAM)
 udp_sk.sendto(b'hello',ip_port)
 back_msg,addr=udp_sk.recvfrom(1024)
 print(back_msg.decode('utf-8'),addr)

udp_client

网络编程-day2的更多相关文章

  1. 猫哥网络编程系列:HTTP PEM 万能调试法

    注:本文内容较长且细节较多,建议先收藏再阅读,原文将在 Github 上维护与更新. 在 HTTP 接口开发与调试过程中,我们经常遇到以下类似的问题: 为什么本地环境接口可以调用成功,但放到手机上就跑 ...

  2. python select网络编程详细介绍

    刚看了反应堆模式的原理,特意复习了socket编程,本文主要介绍python的基本socket使用和select使用,主要用于了解socket通信过程 一.socket模块 socket - Low- ...

  3. Linux Socket 网络编程

    Linux下的网络编程指的是socket套接字编程,入门比较简单.在学校里学过一些皮毛,平时就是自学玩,没有见识过真正的socket编程大程序,比较遗憾.总感觉每次看的时候都有收获,但是每次看完了之后 ...

  4. 猫哥网络编程系列:详解 BAT 面试题

    从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...

  5. 浅谈C#网络编程(一)

    阅读目录: 基础 Socket编程 多线程并发 阻塞式同步IO 基础 在现今软件开发中,网络编程是非常重要的一部分,本文简要介绍下网络编程的概念和实践. Socket是一种网络编程接口,它是对传输层T ...

  6. C++11网络编程

    Handy是一个简洁优雅的C++11网络库,适用于linux与Mac平台.十行代码即可完成一个完整的网络服务器. 下面是echo服务器的代码: #include <handy/handy.h&g ...

  7. Java - 网络编程

    Java的网络编程学习,关于计算机基础的学习参考:计算机网络基础学习 - sqh.     参考:  

  8. Linux网络编程-IO复用技术

    IO复用是Linux中的IO模型之一,IO复用就是进程预先告诉内核需要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理,从而不会在单个IO上阻塞了.Linux中,提 ...

  9. Python Socket 网络编程

    Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...

随机推荐

  1. 【题解】Luogu CF817F MEX Queries

    原题传送门 817,我突然想到了某8位质数 这题珂以说是珂朵莉树的模板 三个操作都肥肠简单,前两个区间赋值,第三个区间0变1,1变0 每次输出从头开始扫描就行(我忘了珂朵莉树的性质,竟然还动态维护最左 ...

  2. Derivative of Softmax Loss Function

    Derivative of Softmax Loss Function A softmax classifier: \[ p_j = \frac{\exp{o_j}}{\sum_{k}\exp{o_k ...

  3. 动态令牌验证遇到的问题(判断用户长按backspace键)

    因为最近负责泰康项目的前端工作,他们的登录需要进行安全验证,也就是所谓的双因素验证,即在OA平台登录过后,还需要安全部门发送安全令牌进行验证.令牌验证效果如下: 主要功能有:1.默认第一项focus. ...

  4. 20175307《Java程序设计》第8周学习总结

    教材学习内容总结 本周学习<Java程序设计>第十五章: 泛型: 泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 泛型类声明:class ...

  5. Elasticsearch .net client NEST使用说明 2.x -更新版

    Elasticsearch .net client NEST使用说明 目录: Elasticsearch .net client NEST 5.x 使用总结 elasticsearch_.net_cl ...

  6. [ZOJ 4016] Mergable Stack

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4016 直接用栈爆内存,看网上大神用数组实现的,构思巧妙,学习了! ...

  7. 容器中的诊断与分析4——live diagnosis——LTTng

    官网地址 LTTng 简介&使用实战 使用LTTng链接内核和用户空间应用程序追踪 简介: LTTng: (Linux Trace Toolkit Next Generation),它是用于跟 ...

  8. ActiveReports 大数据分析报告:2019软件开发者现状

    “C++很不错,PHP是世界上最好的语言,所以我选Java …” 在全球软件开发者群体中,关于最优语言与最优框架的争论从未停止. 本次 ActiveReports 大数据分析报告,将借助权威数据,为您 ...

  9. C# 加载DotNetBar组件

    C#作为前端的开发软件,使用的人很多,但是原生的C#界面较为简陋,已经不能满足公司级的开发工作了,今天这篇博客的主要内容是讲一下怎么在C#端使用一个可以提升界面美感的第三方控件,DotNetBar 首 ...

  10. shell 按行读取文件的内容

    test.py: #coding=utf- import subprocess compilePopen = subprocess.Popen('gcc haha',shell=True,stderr ...