socket套接字

import socket

#被动阻塞式的接收

#创建socket对象

#socket_family:

  #AF_UNIX 被使用在类Unix系统之间进行通信的socket族

  #AF_INFT 被使用在网络间的通信的socket族

  #AF_INET6 被使用在ipv6协议上的socket族

#socket_type:针对于协议说的

  #SOCK_STREAM 针对于tcp/ip协议的socket类型

  #SOCK_DGRAM 针对udp协议的socket类型

      #TCP/IP 面向连接的协议

      #UDP 无连接的协议

sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#绑定套接字

sock.bind(("127.0.0.1",8000))

  #绑定需要一个双元素的元组

    #ip 就是本机的 ip ip如果写成“ ”,那么代表绑定所有本地所有ip

    #port 端口 0-65535 前一千个我们通常不用

    #端口会有被占用的情况,假如socket绑定了一个端口

    #但是没有关闭或者关闭没有释放端口,就会存在端口占用

#监听

sock.listen(5) #监听5个数

  #listen的参数同时监听的个数

  #被动阻塞式的接收

    #1.被动等待访问

    #2.访问进行的过程当中不可以与其他用户进行联系

#信息的接收和发送

con,add=sock.accept()

  #sock.accept返回两个值,我们使用序列解包的赋值方式进行赋值

  #sock.accept 返回两个值

    #第一个是用来发送和接收数据的一个 对象

      #con.recv() #是socket   tcp协议独有的一个接收方式,需要定制一次接收文件的大小     

      #con.send(str) #是socket tcp协议独有的一个发送方式,只能发送字符串

      #第二个是用来显示连接着身份

#通信完成关闭套接字释放端口

sock.close()

#socket  客户端

#1.创建套接字

sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#2、连接指定服务端

sock.connect("127.0.0.1",8000)

  #这里的ip是要连接的服务端的ip

  #这里的端口是要连接的服务端的端口

#3.收发信息

sock.recv(512)

sock.send(str)

#4.关闭连接

sock.close()

 

posted @ 2018-03-20 19:26  何处不逍遥  阅读(102)  评论(0)    收藏  举报