2019-08-14 day-18总结

网络编程



import socket

一.套接字Server

1.什么是socket编程

socket又叫套接字,指的是实现通信的两个端;这两个端又分为服务器套接字和客户端套接字。

2.服务器套接字

python中提供了一个socket模块来支持socket编程

# 1)创建套接字对象

# socket(family = AF_INET, type = SOCK_STREAM)
# family  -  设置ip类型;AF_INET  -  ipv4,  AF_INET6   -  ipv6
# type   -   设置数据的传输方式;SOCK_STREAM  -  TCP,SOCK_DGRAM  -  UDP

server = socket.socket()

# 2)绑定ip和端口
# bind((ip地址, 端口号))
# ip地址 -  字符串;服务器程序运行在哪台计算机上,ip地址就写哪台计算机的ip
# 端口  -  整型;范围是 0-65535,0-1024有自己特殊的意义,一般不随便用
server.bind(('127.0.0.1',8888))

# 3)等待连接并且设置同一时间能够接收的请求数量
server.listen(512)

# 4)让服务器保持一直运行的状态
while True:
    print('开始监听')
    # 5)接收请求
    # 当程序执行到accept()的时候,会停下来直到有客户端给当前服务器发送请求为止
    connect, address = server.accept()
    print('接收到请求')
    print(connect, address)

    # 保持通话
    while True:
        # 6)接收客户端发送的数据
        # recv(数据大小)   -  接收数据并且设置一次性能够接收的最大数据

        # 补充:二进制转字符串
        # a.二进制对象.decode()
        # b.str(二进制对象, encoding='utf_8')

        recv_data = connect.recv(1024)
        print('接收:',recv_data.decode(encoding='utf_8'))

        # 7)给客服端发送数据
        # send(数据)  -   发送数据,数据的类型必须是bytes
        connect.send(('HTTP/1.1 200 OK\r\n\r\n'+input('请输入:')).encode())

# 8)关闭连接
connect.close()

二.套接字Client

# 1.创建套接字对象
client = socket.socket()

# 2.发送请求
# connect((ip地址, 端口号))
client.connect(('127.0.0.1',8888))

while True:
    # 3.发送消息
    send_message = input('客户端:')
    client.send(send_message.encode())

    # 4.接收消息
    re_data = client.recv(1024)
    print(re_data.decode(encoding='utf-8'))

client.close()




from socket import *

三.图片Server

client = socket()
client.connect(('10.7.181.120',8888))

while True:
    re_data = client.recv(1024)

    with open('files\\nn1.jpg', 'ab') as f:
        f.write(re_data)

    if(len(re_data) < 1024):
        break

四.图片Client

client = socket()
client.connect(('10.7.181.120',8888))

while True:
    re_data = client.recv(1024)

    with open('files\\nn1.jpg', 'ab') as f:
        f.write(re_data)

    if(len(re_data) < 1024):
        break

你可能感兴趣的:(2019-08-14 day-18总结)