套接字入門(python3入門)
阿新 • • 發佈:2018-12-20
''' 1、什麼是套接字socket socket把傳輸層以下的協議都封裝成了簡單介面,我們編寫基於網路通訊的軟體只需要呼叫這些介面即可, 我們寫出的程式自然是遵循tcp/udp協議的。。。 什麼是網際網路: 網際網路 = 物理連線介質 + 網際網路通訊協議 ip+port 就可以標示出全世界範圍內獨一無二的一個基於網路通訊的軟體 2、為何要用socket 目標:便攜一個C/S架構的軟體 server端必須具備: 1、服務端需要穩定執行,一直對外提供服務 2、服務端必須繫結一個固定的地址(ip+port) 3、服務端要支援併發 3、如何用socket 套接字自制家族:AF_UNIX(基於檔案),AF_INET(網路通訊)'''
#! /usr/bin/env python # -*- coding: utf-8 -*- import socket #1 買手機 phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #socket_DRAM udp協議,socket_STREAM流式協議 # print('套接字物件1',phone) #套接字1主要用來繫結,做準備工作 #2 繫結手機卡 phone.bind(('127.0.0.1',8080)) #port:0~65535 #3 開機 phone.listen(5) #serverbacklog是半連線池,一般把半連線池的值寫到配置檔案中 #4 等待電話撥入 print('start...') conn,client_addr=phone.accept() #對應客戶端的connect操作 # print('>>>>>>>>>>>') # print('套接字物件2:',conn) #套接字2 代表tcp建好的雙向通路 收發資料 # print(client_addr) #5 收發訊息 data = conn.recv(1024) #最大隻能接收:1024bytes 收訊息 send = conn.send(data.upper())import time time.sleep(100000) #6 掛電話 conn.close() #7 關手機 phone.close()
#! /usr/bin/env python # -*- coding: utf-8 -*- import socket phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #socket_DRAM udp協議,socket_STREAM流式協議 phone.connect(('127.0.0.1',8080)) #port:0~65535 print('客戶端連線請求已經發送!') phone.send('hello'.encode('utf-8')) data = phone.recv(1024) print(data) phone.close()client