[python网络编程]socket的简

发布时间:2019-09-07 08:11:32编辑:auto阅读(1713)

    socket使用

    1 socket基本参数了解

    1.在建立socket对象的时候,需要告诉系统两件事情
    1.1 通信的类型是什么(IPv4/IPv6等)
    1.2 使用的协议是什么?(TCP/UDP等)

    2.各个通信类型和协议的标识
    2.1 IPv4:AF_INET
    2.2 IPv6:AF_INET6
    2.3 TCP:SOCK_STREAM
    2.4 UDP:SOCK_DGRAM

    2 socket使用

    1.创建一个socket

    # 创建一个socket,使用的通信类型是IPv4,使用的协议是TCP
    # socket.socket  --> 创建一个socket连接
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    2.连接socket

    # connect --> 连接
    # www.arppinging.com 代表地址,可以使用域名,python会解析得到地址之后再去连接,80为端口号,前面我们定义了SOCK_STREAM,所以这里使用的是TCP的80号端口
    s.connect(("www.arppinging.com",80))

    实例

    1.建立一个socket连接并马上中止

    #!/usr/bin/env python
    # basic Connection arppinging.com 
    import socket
    
    print "creating socket..."
    # 使用socket.socket创建一个socket
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    print "done."
    
    print "Connecting to remote host......"
    # 使用connect连接socket
    s.connect(("www.arppinging.com",80))
    print "done."

    执行

    [root@arppinging network]# python create_socket.py 
    creating socket...
    done.
    Connecting to remote host......
    done.
    [root@arppinging network]# 

    2.获取socket信息
    2.1 getsockname() 本机的IP和端口号
    2.2 getpeername() 对端的IP和端口号

    #!/usr/bin/env python
    # Information arppinging
    
    import socket
    
    print "Creating socket..."
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    print "done."
    
    print "Connect socket..."
    s.connect(("www.arppinging.com",80))
    print "done."
    # 获取本机的IP和port
    print "Connected from",s.getsockname()
    # 获取对端的IP和port
    print "Connected to",s.getpeername()

    运行

    Creating socket...
    done.
    Connect socket...
    done.
    Connected from ('192.168.10.10', 44578)
    Connected to ('119.28.23.106', 80)

关键字