zoukankan      html  css  js  c++  java
  • socket网络模块

    socket模块提供了一个用Python进行网络连接的库。

    套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将输入和输出(I/O)插入到网络中,并与网络中的其他应用程序进行通信。

    socket =  IP地址 + 端口号

    每台电脑都有唯一的IP地址,你可以通过互联网向你知道的IP地址的电脑发送数据,比如你通过QQ向我发送一个问候语,在我电脑上的QQ软件就会接收到你发给我的信息,那么QQ软件是怎么做到呢?很显然要给我电脑发送数据的第一个条件就是你必须要知道我的电脑ip地址(我登录的电脑QQ软件会获取我电脑的IP地址),而电脑上那么多软件,你电脑上的QQ软件怎么知道发送到具体的哪个软件,这时候端口的定义就是为了解决这个问题的,然后再通过具体账号送至我的QQ消息栏里面。

    端口定义:端口就是为了区分程序的标识符

    电脑上的端口分为两种,知名端口和动态端口:

    知名端口范围:0-1023

    动态端口范围:1024-65535

    查看windows电脑IP地址的指令:ipconfig

    查看windows电脑端口的指令:netstat - an

    TCP协议 = 协议 + IP + 端口


    实例:

    >>> import socket
    >>> socket.setdefaulttimeout(2)  #设置超时
    >>> s = socket.socket()  #创建实例
    >>> ip = "192.168.137.1"
    >>> s.connect((ip,21))  #连接服务器
    >>> s.send("您好".encode("GBK"))  #发送信息并设置编码格式
    4
    >>> info = s.recv(1024)  #读取服务器发来的信息并设置接收的最大字节1024
    >>> print(info)  #打印收到的信息
    b'xc4xfaxbaxc3xa3xa1'
    >>> print(info.decode("GBK"))  #解码输出
    您好!
  • 相关阅读:
    spring 注解学习 一 Bean的注入
    jdk动态代理详解 二 代理失效
    jdk动态代理详解 一 入门
    tomcat中web应用的目录结构
    mongoose与mongodb 的版本兼容性表格
    树莓派3B安装ffmpeg过程记录
    ESP8266驱动SSD1306 ESP8266 for Arduino(NodeMCU U8G2库)
    ESP8266 for Arduino开发环境安装
    Mongodb3.4升张到4.0过程
    使用webgl(three.js)创建自动化抽象化3D机房,3D机房模块详细介绍(抽象版一)
  • 原文地址:https://www.cnblogs.com/iBoundary/p/11469955.html
Copyright © 2011-2022 走看看