美文网首页
2018-10-24网络通信总结

2018-10-24网络通信总结

作者: _墨宇_ | 来源:发表于2018-10-24 20:42 被阅读0次

服务器

socket又叫套接字,指的是 实现网络通信的两端。分为服务器对应的套接字和客户端对应的套接字。
1.python通过提供socket标准库来支持socket编程。socket编程就是用程序实现服务器和客户端

1.创建服务器对应的套接字对象
socket(family,type) family: 设置ip类型 AF_INET(ipv4) --默认值 type: 设置传输类型 SOCK_STREAM(TCP可靠传输)--- 默认值

server = socket.socket()   # 创建一个基于ipv4的可靠传输的服务器套接字

2.绑定ip和端口

server.bind((ip,端口))

bind(ip,端口) ip:服务器的地址 端口: 不同端口用来区分电脑上不同的服务。取值范围是0—65535,0-1024表示著名端口(用来 绑定特殊服务的端口

3.监听请求
listen(个数) --- 需要通过数字设置服务器一次可以处理最大的请求个数

server.listen(520)

4.让服务器一直处于启动状态

while True:

5.接收客户端的请求
执行到accept(),程序会停下来,直到有客户端在请求服务器的时候才会往下执行,
返回会话和客户端地址

converstation,addr =server.accept()

6.服务器给客户端发送数据
send(data) --- 发送数据 data: 需要发送的数据,要求是二进制(bytes) a.str 转 bytes(字符串转换成二进制) 方法 1: bytes(字符串,encoding= ‘utf-8’) 方法2: 字符串.encode(编码方式)

converstation.send(data(二进制形式))

7.接收客户端发送的消息

` recv(字节数) ---- 接收从客户端发来的消息 ,参数是用来设置 一次能接收的最大字节数,返回值是接收到的数据(二进制)
bytes 转 str
方法1:str()
方法2:二进制.decode(‘utf-8’)

注意: recv方法也阻塞线程,程序运行到这里会停下来等,等到对方发送消息为止`
 data = converstation.recv(1024)
    # re_message = str(data,encoding='utf-8')
   re_message = data.decode('ute-8')
   print(re_message)

客户端

1.创建客户端套接对象

client = socket.socket()

2.链接服务器

client.connect((服务器地址,端口))

3.给服务器发送消息

while True:
   message = input('客户端:')
   client.send(message.encode('utf-8'))

4.接收服务器返回的数据

re_data = client.recv(1024)
print(re_data.decode('utf-8'))

requests请求

1.python中没有网络请求,需要一个第三方库requests

import  requests

requests.get(url, params) --> 返回服务的响应
url -> 请求地址
params -> 客户端给服务发送的数据(字典) {参数名:值}

# https://www.apiopen.top/satinApi?type=1&page=1
url = 'https://www.apiopen.top/satinApi?type=1&page=1'
response = requests.get(url,{'type':1,'page':1})
# 1.获取响应头
print(response.headers)


#2.拿二进制形式的响应体

data_bytes= response.content
print(data_bytes)
# 3.拿字符串形式的响应体
data_str = response.text
print(data_str)

# 4.拿json格式对应的数据
data_json = response.json()
print(data_json)

相关文章

  • 2018-10-24网络通信总结

    服务器 socket又叫套接字,指的是 实现网络通信的两端。分为服务器对应的套接字和客户端对应的套接字。1.pyt...

  • 橘子皮学docker之Kubernetes的网络知识

    目录 docker的网络通信 kubernetes的网络通信 总结 kubernetes集群搭建完成后,使用doc...

  • Dubbo的RPC

    总结:RPC有三个要素:1,网络通信;2,序列化;3,代理 网络通信 Dubbo默认使用dubbo协议 Dubbo...

  • 2018-10-24

    2018-10-24 炫腹团二阶10月第4轮总结 10月20日-10月24日总结: 1,体重体脂变化: 没有什么变...

  • 2018-10-24

    2018-10-24 安妮 2018-10-24 11:02 · 李捷老师讲课 要有利他思维,爱别人,帮助别人,才...

  • Retrofit源码解读

    先来梳理一下Retrofit网络通信的过程,这里总结了一下:网络通信过程:1.创建Retrofit实例2.定义一个...

  • 计算机网络基础第一次总结

    关于网络通信基础的第一次总结: 最近几天因为一个问题研究了网络通信的七层模型,下面就这些问题整体的零碎知识点总结下...

  • 时间戳或者中国标准时间转换成标准时间(yyyy-MM-DD)

    标准日期:2018-10-24 或 2018-10-24 20:00:00中国标准时间:Wed Oct 24 20...

  • Day-19 - 网络通信(2018-10-24)

    一、正则表达式回顾 import re 1.正则符号匹配字符:. \w \s \d (\b, ^, $, \...

  • 2018-10-24 day19-网络通信

    1.socket 服务器 socket又叫套接字,实现网络通信的两端就是套接字。分为服务器对应的套接字和客户端对应...

网友评论

      本文标题:2018-10-24网络通信总结

      本文链接:https://www.haomeiwen.com/subject/sloxtqtx.html