Socket
有一個模組已經將 socket 包成 server 可簡單用
但這章節講的是比較底層的
https://docs.python.org/3/library/socket.html
socket.socket 選項包含
socket.AF_UNIX IPC 用於同一台機器上的通信
socket.AF_INET 用於服務器與服務器之間的 TCP 通信
socket.AF_INET6 基於IPV6方式通信
socket.SOCK_STREAM 基於TCP的流式socket通信
socket.SOCK_DGRAM 基於UDP的數據報式socket通信
socket.SOCK_RAW 原始套接字,普通的套接字無法處理ICMP、IGMP等網絡報文,而SOCK_RAW可以;其次SOCK_RAW也可以處理特殊的IPV4報文;此外,利用原始套接字,可以通過IP_HDRINCL套接字選項由用戶構造IP頭
socket.SOCK_SEQPACKET 可靠的連續數據包服務
server
import socket
HOST = '192.168.0.1'
PORT = 8080
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5) # 5 為最大連接數
print 'Server start at: %s:%s' %(HOST, PORT)
while True:
conn, addr = s.accept()
while True:
data = conn.recv(1024)
print data
client
import socket
HOST = '192.168.0.1'
PORT = 8080
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
cmd = raw_input("test")
s.send(cmd)
data = s.recv(1024)
print data
Last updated
Was this helpful?