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)
[python 网络编程]socket 的简单使用 (一)
来源: http://www.bubuko.com/infodetail-2634688.html