为了账号安全,请及时绑定邮箱和手机立即绑定

python运维-Socket网络编程

亦德 Python工程师
难度中级
时长 1小时27分
学习人数
综合评分9.70
21人评价 查看评价
9.6 内容实用
9.8 简洁易懂
9.7 逻辑清晰
  • 服务器端程序编写1

    查看全部
    0 采集 收起 来源:服务器端程序

    2019-01-01

  • Socket的通信过程,实际上就是TCP的通信过程,socket使用了TCP协议,所以通信过程是一样的。

    socket可以适应多种网络协议,比较常见的就是UDP和TCP

    查看全部
    0 采集 收起 来源:socket简介

    2019-01-01

  • socket简介

    查看全部
    0 采集 收起 来源:socket简介

    2019-01-01

  • 多线程  实现非阻塞

    查看全部
  • 扩展

    发送端:

    #coding=gbk
    import socket
    
    #实例化模块
    sk = socket.socket()
    
    #定义连接ip和port
    ip_port = ('127.0.0.1',9999)
    
    #服务器连接
    sk.connect(ip_port)
    
    #输入信息
    msg_input = input("是否开始发送文件:yes/no")
    
    #发送消息并编码
    sk.send(msg_input.encode())
    
    #如果发送yes开始上传文件
    if msg_input == 'yes':
    
        #打开文件
        with open('ceshi.py','rb')as f:
    
            #按每一段分割文件
            for i in f:
    
                #数据上传
                sk.send(i)
    
                #等待接收完成标志
                data = sk.recv(1024)
    
                #判断服务器端是否真正的接收完成
                if data != b'success':
                    print(data)
                    break
    
        #给服务器端发送结束信号
        sk.send('quit'.encode())
    
     #否则关闭本地连接
    else:
        #关闭连接
        sk.close()



    接收端:

    #coding=gbk
    import socket
    
    #实例化模块
    sk = socket.socket()
    
    #定义连接ip和 port
    ip_port = ('127.0.0.1',9999)
    
    #服务器绑定端口
    sk.bind(ip_port)
    
    # 最大连接数
    sk.listen(5)
    
    #while循环客户端连接
    while True:
    
        # 等待客户端连接
        conn,address = sk.accept()
    
        #接收发送端确认信息
        da = conn.recv(1024)
    
        #如果发送端发送yes开始接收文件
        if da == b'yes':
    
                # 一直使用当前连接进行数据发送
                # 直到结束标志出现
            while True:
                with open("file","ab")as f:
    
                    #接收数据
                    data = conn.recv(1024)
                    print(data)
    
                    #如果接收数据信息是:quit则退出当前循环
                    if data == b'quit':
                        print("文件接收完成!")
                        break
    
                    #否则写入数据
                    else:
                        f.write(data)
    
                #发送接收完成标志
                conn.send('success'.encode())
    
        #否则退出当前循环
        else:
            break
    
    #打印提示信息
    print("关闭文件接收程序")
    
    #关闭连接
    sk.close()


    查看全部
  • family:地址簇 

    socket.AF_INET IPv4 (默认)

    socket.AF_INET IPv6

    socket.AF_UNIX 只能用于单一的Unix系进程间通信

    type:

    proto

    查看全部
  • https://img1.sycdn.imooc.com//5bfec27c000192be05400367.jpg

    https://img1.sycdn.imooc.com//5bfec2d70001286d04400383.jpghttps://img1.sycdn.imooc.com//5bfec32600017cf304450354.jpghttps://img1.sycdn.imooc.com//5bfec3640001730e04970208.jpg规范规定发给

    查看全部
  • socket family参数,socket.AF_INET,socket.AF_INET6,socket.AF_UNIX

    socket type参数,如图

    查看全部
  • 继承socketserver对象 重载三个方法
    查看全部
  • Socket参数

    type 类型

    socket.SOCK_STREAM  流式socket, for TCP

    socket.SOCK_DGRAM 数据报式 socket, for UDP

    socket.SOCK_RAW 原始套接字

    socket.SOCK_RDM 可靠UDP形式

    socket.SOCK_SEQPACKET 可靠的连续数据包服务


    查看全部
  • Socket 参数

    family地址簇

    socket.AF_INET    IPv4

    socket.AF_INET6   IPv6

    socket.AF_UNIX 只能够用于单一的Unix系统进程间通信

    查看全部
  • socket编程

    https://img1.sycdn.imooc.com//5bd3170f0001267008390447.jpg

    查看全部
  • https://img1.sycdn.imooc.com//5bd2e7e600017e5d07970432.jpg

    https://img1.sycdn.imooc.com//5bd2e7e60001121a07860453.jpg

    tcp,socket通信过程

    查看全部
    0 采集 收起 来源:socket简介

    2018-10-26

  • 简单TCP过程

    第一次握手:客户端 发送SYN报文,设置随机数序号X,服务器由SYN=1知道,客户端要求建立联机

    第二次握手:服务器端接收到客户端的报文之后,经过处理,返回给客户端SYN+ACK报文,同时设置随机序号Y,此时返回的报文确认ACK=X+1

    第三次握手:接收到报文的客户端,会在处理确认之后,再发送一个报文给服务器端,此时确认为ACK=Y+1

    服务器端接收到客户端发送的报文之后,会在服务器端与客户端形成一种通路,此后的数据就可以在这个通路上就可以传输。

    其实就是TCP/IP三次握手链接,面试被问过,没说好。这次好好理解一下原理过程


    查看全部
    2 采集 收起 来源:socket简介

    2018-10-23

  • socket是电脑网络中进程间数据流的端点

    分为UDP和TCP两种通信方式

    查看全部
    0 采集 收起 来源:socket简介

    2018-09-26

首页上一页123下一页尾页

举报

0/150
提交
取消

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!