码迷,mamicode.com
首页 > 其他好文 > 详细

4.1 socket

时间:2019-01-30 22:16:47      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:文件传输   accept   拥塞控制   服务   多对一   from   src   时延   toc   

目录 

4.1.1 背景概念

4.1.2 socket 概念特性

4.1.3 TCP_socket

4.1.4 UDP_socket

4.1.5 其他补充方法

 

 

4.1.1 背景概念

 

脑图结构

技术分享图片

 

 

OSI 模型

技术分享图片

 

 

 

4.1.2 socket 概念特性

脑图结构

技术分享图片

理解示意图

技术分享图片

 额外补充

  Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。

  在设计模式中, Socket其实就是一个门面模式

  它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据,以符合指定的协议。

 

 

 

4.1.3 TCP_socket

技术分享图片

 

server

import socket
sk = socket.socket()
sk.bind((127.0.0.1,8898))  # 把地址绑定到套接字
sk.listen()  # 监听链接
conn,addr = sk.accept()  # 接受客户端链接
ret = conn.recv(1024)  # 接收客户端信息
print(ret)  # 打印客户端信息
conn.send(bhi)  # 向客户端发送信息
conn.close()  # 关闭客户端套接字
sk.close()  # 关闭服务器套接字(可选)

 

client

import socket
sk = socket.socket()  # 创建客户套接字
sk.connect((127.0.0.1,8898))  # 尝试连接服务器
sk.send(bhello!)
ret = sk.recv(1024)  # 对话(发送/接收)
print(ret)
sk.close()  # 关闭客户套接字

 

 

特性

技术分享图片

 

粘包

 技术分享图片

 

额外补充

  TCP (Transmission Control Protocol)可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。

  使用TCP的应用:Web浏览器;电子邮件、文件传输程序。

 

 

4.1.4 UDP_socket

 技术分享图片

 

 server

import socket
udp_sk = socket.socket(type=socket.SOCK_DGRAM)   #创建一个服务器的套接字
udp_sk.bind((127.0.0.1,9000))        #绑定服务器套接字
msg,addr = udp_sk.recvfrom(1024)
print(msg)
udp_sk.sendto(bhi,addr)                 # 对话(接收与发送)
udp_sk.close()                         # 关闭服务器套接字

 

client

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

 

 

额外补充

  UDP (User Datagram Protocol)不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文,尽最大努力服务,无拥塞控制。

  使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。

 

 4.1.5 其他补充方法

 技术分享图片

 

 

4.1 socket

标签:文件传输   accept   拥塞控制   服务   多对一   from   src   时延   toc   

原文地址:https://www.cnblogs.com/shijieli/p/10339969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!