從零開始學習 socket 6月25日

2021-08-20 23:28:15 字數 2119 閱讀 2933

網路程式設計,參考python核心程式設計2-4

tcp伺服器模板:

ss = socket()        #建立伺服器套接字

ss.bind()            #套接字與位址繫結

ss.listen()          #監聽連線

inf_loop:            #通訊迴圈

cs = ss.accept()    #接受客戶端連線

comm_loop:          #通訊迴圈

cs.recv()/cs.send()    #對話(接受/傳送)

cs.close()                 #關閉客戶端套接字

ss.close()                     #關閉伺服器套接字

tcp客戶端模板:

cs = socket() #建立客戶端套接字

cs.connect() #嘗試連線伺服器

comm_loop: #通訊迴圈

cs.send()/cs.recv() #對話(傳送/接收)

cs.close() #關閉客戶端

以時間戳伺服器舉例

tcp時間戳伺服器:

from socket import *

import time

host = '' #host變數為空白表示它可以使用任何位址

port = 12181 #隨機埠

bufsiz = 1024 #緩衝區大小

addr = (host,port) #位址

tcp_service = socket(af_inet,sock_stream,0) #分配tcp伺服器套接字

tcp_service.bind(addr) #將套接字繫結到伺服器上

tcp_service.listen(5) #開啟tcp***

while true: #通訊迴圈

print('正在執行。。。')

tcpclisock, add = tcp_service.accept() #接收資料

print('連線來自:',add)

while true: #通訊迴圈

data = tcpclisock.recv(bufsiz)

if not data: #如果資料為空則斷開連線

break

# tcpclisock.send('[%s] %s' %(bytes(time.ctime,'utf-8'),data) #原檔格式化轉碼有錯誤

tcpclisock.send(('[%s] %s' %(time.ctime(),data)).encode()) #格式化資料並返回客戶端

tcpclisock.close() #更加優雅的退出方式

tcp時間戳客戶端:

from socket import *

host = 'localhost' #host為伺服器位址,因為用的是本機測試所以位址為localhost

port = 12181 #為伺服器開放埠

bufsiz = 1024 #緩衝區大小

addr = (host, port) #組合位址

tcpclisock = socket(af_inet,sock_stream) #建立套接字

tcpclisock.connect(addr) #嘗試連線伺服器

while true: #通訊迴圈

data = input('> ') #

if not data: #使用者沒有輸入則終止連線

break

tcpclisock.send(data.encode()) #資料格式化傳送伺服器

data = tcpclisock.recv(bufsiz)

if not data: #伺服器無傳回資料則終止連線

break

print(data.decode('utf-8')) #格式化列印傳回資料

tcpclisock.close() #優雅的結束客戶端套接字

單詞:required    必須的

recv            接收

send            傳送

從零開始學習 社群 6月28日

一般社會學家與地理學家所指的社群 community 廣義而言是指在某些邊界線 地區或領域內發生作用的一切社會關係。它可以指實際的地理區域或是在某區域內發生的社會關係,或指存在於較抽象的 思想上的關係,除此之外。worsley 1987 曾提出社群的廣泛涵義 可被解釋為地區性的社群 用來表示乙個有相...

從零開始學習MySQL 6月22日

官網 最新版本8.0.11 windows 變數 初始化mysql伺服器 mysqld initialize console啟動 關閉mysql伺服器 net start mysql net stop mysqlmysql修改使用者密碼 set password for user localhost...

從零開始學習MySQL 6月23日

mysql workbench 官網 mysql設定密碼時注意密碼的負責度應有 數字 符號 英文 不然workbench會報錯!建立乙個資料庫的表單 create table name id int 3 name varchar 8 password varchar 20 更改表單名 alter t...