zoukankan      html  css  js  c++  java
  • 套接字入门(python3入门)

    '''
    1、什么是套接字socket
        socket把传输层以下的协议都抽象封装成了简单接口,我们编写基于网络通信的软件只需要调用这些接口即可,
            我们写出的程序自然是遵循tcp/udp协议的。。。
    
        什么是互联网:
            互联网 = 物理连接介质 + 互联网通信协议
    
        ip+port 就可以标示出全世界范围内独一无二的一个基于网络通信的软件
    
    
    
    2、为何要用socket
        目标:便携一个C/S架构的软件
        server端必须具备:
            1、服务端需要稳定运行,一直对外提供服务
            2、服务端必须绑定一个固定的地址(ip+port)
            3、服务端要支持并发
    
    
    3、如何用socket
        套接字自制家族:AF_UNIX(基于文件),AF_INET(网络通信)
    '''
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    
    
    
    import socket
    
    
    #1 买手机
    phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)    #socket_DRAM udp协议,socket_STREAM流式协议
    
    # print('套接字对象1',phone)
    #套接字1主要用来绑定,做准备工作
    
    
    #2 绑定手机卡
    phone.bind(('127.0.0.1',8080))  #port:0~65535
    
    
    #3 开机
    phone.listen(5) #backlog是半连接池,一般把半连接池的值写到配置文件中
    
    
    #4 等待电话拨入
    print('start...')
    conn,client_addr=phone.accept()  #对应客户端的connect操作
    # print('>>>>>>>>>>>')
    # print('套接字对象2:',conn)   #套接字2 代表tcp建好的双向通路 收发数据
    # print(client_addr)
    
    
    #5 收发消息
    data = conn.recv(1024)    #最大只能接收:1024bytes 收消息
    send = conn.send(data.upper())
    
    import time
    time.sleep(100000)
    
    
    #6 挂电话
    conn.close()
    
    
    #7 关手机
    phone.close()
    server
    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    
    
    
    import socket
    
    
    
    phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)    #socket_DRAM udp协议,socket_STREAM流式协议
    
    
    phone.connect(('127.0.0.1',8080))  #port:0~65535
    print('客户端连接请求已经发送!')
    
    phone.send('hello'.encode('utf-8'))
    data = phone.recv(1024)
    print(data)
    
    
    phone.close()
    client
  • 相关阅读:
    Linux命令-tail命令
    服务器重装ip未更改,ssh连不上(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED)
    Docker中Nginx部署go应用
    Django+gunicorn+nginx项目部署
    Django之 CVB&FVB
    Django之form校验&后台管理
    python argparse例子实践
    重新认识递归
    Django之数据库对象关系映射
    jenkins参数化构建&HTML报告
  • 原文地址:https://www.cnblogs.com/lich1x/p/10149998.html
Copyright © 2011-2022 走看看