一般通信协议
APP应用层:
HTTP(hypertexttransferprotocol ) :超文本传输协议
文件传输协议(FTP ) :文件传输协议
SFTP(sshfiletransferprotocol ) :安全文件传输协议
域名系统(DNS ) :域名系统
简单邮件传输协议(SMTP ) :简单邮件传输协议
pop3(后偏移协议版本3 ) :邮局协议3
互联网邮件访问协议(IMAP ) :互联网邮件访问协议
SCP (scp ) scp是使用SSH传输数据的智能网络的核心部件,用于复制远程文件,并对复制过程进行加密
传输层(网络层) :
TCP (传输控制协议) :传输控制协议
用户数据报协议(UDP ) :用户数据报协议
网络层:
互联网协议(IP ) :互联网协议
互联网控制消息传递协议(icmp ) :控制消息传递协议
链路层:
媒体访问控制(MAC ) :媒体访问控制
地址解析协议(ARP ) :地址解析协议
这次使用http协议发送请求,传送图像得到应答。 首先考虑的是通过套接字、编程接口的传输流实现图像的传输。
以下是两者各自的特征和不同:
套接字: APP应用层与TCP/IP协议族通信的中间软件抽象层。 这是一系列的接口。 在设计模式下,套接字实际上是门模式,将复杂的TCP/IP协议族隐藏在套接字接口的后面,对用户来说,所有的简单接口都是为了使套接字符合指定的协议而数据套接字是TCP/IP协议的封装,只有通过套接字才能使用TCP/UDP协议。
HTTP协议:构建在TCP协议之上的APP应用程序。 HTTP连接最明显的特征是,每次客户端发送的请求时,服务都需要回复应答,请求结束后积极地释放连接。 从建立连接到关闭连接的过程称为主连接。
1 ) HTTP 1.0中,每次客户端请求都要求建立单独的连接,处理完这次的请求后,自动释放连接。
2 )因为在HTTP 1.1中能够以一个连接处理多个请求,能够重叠进行多个请求,所以不需要在一个请求结束之后发送下一个请求。
差异:
1 ) http是协议,套接字是编程接口,主要包括TCP协议和UDP协议;
2 ) http和TCP/UDP是两个不同层中的协议。 http是APP应用层协议,TCP/UDP是传输层协议,http是TCP/UDP之上的协议,http协议使用TCP/UDP。 http再高级一点,但不够灵活。
为了项目的需要,我选择了http协议实现了通信。 python的pickle包(以下有详细写pickle包的博客。 请看。 )将图像转换为字节对象后发送到服务器端,在服务器端进行分析即可。 )以下是客户端的实现代码
#! /usr/ssdmj/python
# -*-coding=utf-8 -*-
import json
导入程序
import urllib2
导入请求
导入拾取
efpost(server_URL,params ) :
data=urllib.urlencode(params )
request=urllib2. request (server _ URL,data ) )。
return JSON.loads (urllib2. urlopen (request,timeout=10 ).read ()
eflocal_image(server_URL,image_path ) :
server _ URL=' http://192.168.1.17633608080/face/sign in ' #服务器端提供的URL
image_path='li.jpg '
r_file=open(image_path,' rb ' ) )。
img=pickle.dumps(r_file.read ) ) #返回字节对象
params={'img': img}
打印端口(server _ URL,params ) )。
if __name__=='__main__':
URL=' http://192.168.20.12933608080/Li.jpg?'
# local image
file_path='li.jpg' #本地存储的图像路径
local_image(URL,file_path ) )。
通过测试可以发送请求并获得响应。
参考博客:
3359 blog.csdn.net/w 369033345/article/details/72779553
3359 blog.csdn.net/yma ini/article/details/80645917
3359 blog.csdn.net/sinat _ 29552923/article/details/70833455