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

python运维-Socket网络编程

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

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

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

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

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

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


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

    2018-10-23

  • 服务器端和客户端有什么区别 1:服务器端是为客户端服务的,客户端是为真正的客户服务的 2:客户端是请求方或是指令方发出的,而服务器端是响应方
    查看全部
    1 采集 收起 来源:服务器端程序

    2019-04-30

  • 扩展

    发送端:

    #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()


    查看全部
  • 客户端=============================

    import socket

    client = socket.socket()

    ip_port = ("127.0.0.1",8888)

    client.connect(ip_port)

    data = client.recv(1024)

    print(data.decode())

    while True:

        msg_input  =  input("请输入发送的消息:")

        client.send(msg_input.encode())

        if msg_input == "exit":

            break

        data = client.recv(1024)

        print(data.decode())

    服务端====================

    import socket

    sk = socket.socket()

    ip_port =  ("127.0.0.1",8888)

    sk.bind(ip_port)

    sk.listen(5)

    while True:

        print("正在等待接受数据..........")

        conn,address = sk.accept()

        msg = "连接成功"

        conn.send(msg.encode())    

        while True:

            data = conn.recv(1024)

            pirnt(data.decode())

            if data == b"exit":

                break

            conn.send(data)

            conn.send(str(random.randint(1,1000)))

        conn.close()

    查看全部
  • # 导入模块
    import socket
    # 创建实例
    sk = socket.socket()
    # 定义绑定ip&port
    ip_port = ('127.0.0.1', 8888)
    # 绑定监听
    sk.bind(ip_port)
    # 最大连接数
    sk.listen(5)
    # 提示信息
    print('正在进行等待接收数据....')
    # 接收数据
    conn, address = sk.accept()
    # 定义信息
    msg = "Hello World"
    # 返回信息
    conn.send(msg.encode())
    # 主动关闭连接
    conn.close()


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

    2020-05-18

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

    2020-04-15

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

    2020-04-15

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

    2020-04-15

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

    2020-04-15

  • import socket

    client = socket.socket();

    ip_port = ("127.0.0.1",8888);

    client.connect(ip_port);

    data = client.recv(1024);

    print(data.decode());


    查看全部
  • 服务器段和客户端都是基于tcp的

    这里 客户端也是socket.socket() ??

    查看全部
  • socket是阻塞的(python是阻塞的?) 

    5的意思是 可以挂起的最大连接数

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

    2020-04-15

  • import socket

    sk = socket.socket();

    ip_sort = ("127.0.0.1", 8888);

    sk.bind(ip_port);


    sk.listen(5);


    //正在等待接受数据

    print("Waiting...");


    //接受数据

    conn,address = sk.accpet();

    msg = "hello, world";

    //python3.x 以上都是以byte类型发送 所以需要强制转换为byte

    conn.sent(msg.encode());


    //总结

    sk = socket.socket();

    sk.bind(//某个值);

    sk.listen(5);

    conn //这是客户端    address // 这是客户端的地址     sk.accept();

    sk.send();


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

    2020-04-15

  • socket通讯使用了tcp协议 所以看起来一样

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

    2020-04-15

  • socket通信过程

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

    2020-04-15

首页上一页1234下一页尾页

举报

0/150
提交
取消

微信扫码,参与3人拼团

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

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