python 标准库【scoke】1

本文介绍了Python的socket模块,包括gethostname()和gethostbyname()函数的使用,以及socket的创建和不同类型。详细讲解了服务端的bind(), listen()和accept()方法,以及客户端的recv(), connect(), send()和sendto()等方法。展示了TCP与UDP通信的区别。" 107440982,9388424,Mybatis注解开发详解,"['Mybatis', '注解开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

scoket:

           scoket 通常也 被称作“套接字”,网络上的两个程序通过一个双向的通信连接实现数据交换,这个连接的一段成为一个socket,socket是网络连接端点。例如你的web浏览器在请求网上的主页时,你的webl浏览器创建一个socket并命令他去连接,网络web服务器的主机,web服务器也对来自目的的请求在一个socket上进行监听。两端使用各自的socket;来发送和接受消息。

socket 模块提供了几个函数用于使用主机名和地址来工作:

            ggethostname():返回运行程序所在的计算机的主机名:

                            >>> import socket
                            >>> socket.gethostname()

                                    'MY-THINK'

               gethostbyname():尝试将给定的主机名解释为一个IP地址

                            >>> socket.gethostbyname("www.baidu.com")
                                    '111.13.100.91'
                            >>> socket.gethostbyname("MY-THINK")
                                    '192.168.1.105'

                             >>> 

                 ps: 首先将检查当前计算机是否能够解释。如果不能,一个解释请求将发送给一个远程的DNS服务器(远程的DNS服务器 还可能将解释请求转发给另一个DNS服务器,直到该请求可以被处理)。gethostbyname函数返回这个IP地址或在查找失败后引发一个异常。

scoket 通信

                scoket.scoket(family = AF_INET, type = scoket_STREAM,proto = 0, fileno = None)

        (  1  )  family = AF_INIT表示服务器之间的通信,

        (2) fmily  =  AF_UNIX 表示Unix不同进程间的通信,

         (3) type = SOCK_STREAM表示TCP连接,

          (4)type = SOCK_DGRAM 表示UDP连接,

scoket中用于   服务端   连接的方法有

 1.bind(  )

     sk.bind(address)

 将地址与socket绑定。address(host IP,端口号),address必须是个元祖

2.listen(  )

    sk.listen(backlog)

    监听客户端的连接,backlog为可选参数,表示最大的连接数量,

3.accept(  )

    接受并返回(conn, address),其中conn,表示客户端的对象



socket  中用于  客户端  的方法有 :

 1. recv( )

  sk.recv(bufsize)

       接受数据,其中bufsize 表示最大可接受的数据的大小

  2. connect()

       sk.connect(address)

       连接指定地址的socket,address用元祖表示

 3.send()

   将 data 发送给socket.

 4.sendall()

     与 send 相似,内部通过send()方法,尝试将所有数据发送出去。

5. sendto(  )

   sk.sendto(data,addr)

  可指定远端地址

注意:

  TCP(SOCK_ATREAM),需要连接到远程主机才可以发送数据,发送数据用     send(b'字符')

UDP(SOCK_DGRAM),不需要连接,直接发送数据,发送数据用sendto(b'字符',(IP,port))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值