[python網路編程]socket

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)