• 套接字入门(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
  • 相关阅读:
    【Shell】Shell编程之while循环命令
    【Shell】Shell编程之grep命令
    【Shell】Shell编程之awk命令
    【Shell】Shell编程之sed命令
    【MySQL】MySQL之示例数据库Sakila下载及安装
    关于JAVA项目报表选型过程
    关于HSQLDB访问已有数据库文件的操作说明
    为什么要用 C# 来作为您的首选编程语言
    ThinkPHP_5对数据库的CURL操作
    使用ECharts画K线图
  • 原文地址:https://www.cnblogs.com/lich1x/p/10149998.html
Copyright © 2020-2023  润新知