python 标准库【scoke】1

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))

猜你喜欢

转载自blog.csdn.net/shilaike2/article/details/79520993