咨询电话:
15628812133
19
2020/09

python搭建scoket服务

发布时间:2020-09-19 16:08:27
发布者:神棍子
浏览量:
0

python环境中已经自带了scoket库,只需要简单的几行代码便可以搭建scoket环境进行通信。

1.首先需要导入scoket包

        import scoket

2.然后初始化scoket实例,scoket方法中有三个参数(地址簇,类型,协议)

        init = scoket.scoket()

    参数一:地址簇

  socket.AF_INET IPv4(默认)

  socket.AF_INET6 IPv6

  socket.AF_UNIX 只能够用于单一的Unix系统进程间通信

    参数二:类型

  socket.SOCK_STREAM  流式socket , for TCP (默认)

  socket.SOCK_DGRAM   数据报式socket , for UDP

  socket.SOCK_RAW 原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。

  socket.SOCK_RDM 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。

  socket.SOCK_SEQPACKET 可靠的连续数据包服务

    参数三:协议

  0  (默认)与特定的地址家族相关的协议,如果是 0 ,则系统就会根据地址格式和套接类别,自动选择一个合适的协议

3.然后绑定ip地址和端口号 使用bind方法(默认应该都是自己的ip所以用localhost)

    init.bind(('localhost',1234))

4.然后开始监听连接,监听方式是listen(非阻塞,需填写最大链接个数)

    init.listen(5)

5.然后使用accept()方法阻塞链接等待信息传递,返回(套接字对象,ip)

    init.accept()

6.使用recv()接收数据,接收过来的数据是二进制所以还需要转义

    data = conn.recv(1024)

    print(data.decode())

7.然后建立客户端,1,2步相同,使用connect((ip,端口)),方法进行连接

    init.connect(('localhost',1234))

8.发送信息send方法

    init.send('hello'.encode('utf-8'))

此时scoket搭建完成,看一下测试情况

    

socket

    

关键词:
返回列表