python网口通讯 读取_【网络接口API】Python Socket与Linux Socket

Python Socket与Linux Socket

socket: Python的底层网络接口,一般情况程序员不需要接触到这个模块。有更多的高级模块,比如requests可以直接使用。本文章试图从Python的socket模块和linux socket api的角度来对Python实现网络通讯方式进行分析,提高对TCP,UDP通讯方式的理解。最后用Python实现一个hello/hi的简单的网络聊天程序。

1. socket

在Python中如果想要使用一个自己的网络应用层协议,或者说想使用纯原生TCP,UDP来实现通讯,就需要使用Python的socket模块。

import socket

socket模块提供了访问BSD套接字的接口。在所有现代Unix系统、Windows、macOS和其他一些平台上可用。

1.1 socket()方法

# 使用socket()方法返回一个socket对象

s = socket.socket([family[, type, proto, fileno]])

重要参数:

family: 套接字家族,如ipv4,ipv6,unix系统进程间通信

type: 套接字类型,如tcp,upd

参数

描述

family

socket.AF_INET(默认)

IPv4

socket.AF_INET6

IPv6

socket.AF_UNIX

Unix系统进程间通信

type

socket.SOCK_STREAM

流式套接字,TCP

socket.SOCK_DGRAM

数据报套接字,UDP

socket.SOCK_RAW

原始套接字

socket方法与Linux Socket的socket函数对应

// socket(协议域,套接字类型,协议)

int socket(int domain, int type, int protocol);

通过s = socket.socket()方法,得到了一个socket对象。

Python中的socket对象的成员方法,是对套接字系统调用的高级实现,往往比C语言更高级。

2. TCP

2.1 bind()方法

通常如果是服务器,需要绑定一个总所周知的地址用于提供服务,所以需要绑定一个(IP:PORT),客户端可以通过连接这个地址来获得服务。而客户端则直接通过连接,由系统随机分配一个端口号。

python中bind()方法传入一个地址和端口的元组

s.bind((host: str, port: int))

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值