******tcp連線屬於三次握手*****
syn 用於向對方發起連線請求的標誌,規定帶syn標誌的資料報佔乙個位元組的編號。j是順序號,
ack 是用於應答的標誌,規定除了第一次的syn請求的資料報沒有ack,後面所有的資料報都帶有ack應答標誌。傳送j+1。
j+1 = 5 ,j+6..
三次目的:為了防止伺服器被惡意請求。
資料傳輸:兩次連線
**四次揮手**斷開連線屬於四次鏈結,fin用於斷開連線標誌,規定帶fin標誌的資料報佔乙個位元組編號
msl**maximum segment lifetime 最大的資料生存時間。
*****重點****tcp服務端流程,tcp客戶端流程**********
tcp --傳輸控制協議,面向連線的,可靠的,基於位元組流的傳輸層通訊協議。(應答機制,超時長傳機制,位元組流有編號)
connect()---發起連線請求
accept()---接起連線請求
-----------------------------伺服器端---------------------
1.建立socket,流式套接字,tcp協議.
listen_socket = socket.socket(socket.af_inet,socket.sock_stream)
# 設定允許復用位址 #(socket層屬性,重用位址,允許)
listen_socket.setsockopt(socket.sol_socket, scoket.so_reuseaddr,1)
2.繫結位址(ip,port)
my_addr=('192.168.138.127', 10000)
lisetn_socket.bind(my_addr)
3.設為監聽狀態listen()
listen_socket.listen(128) #backlog引數用來快取客戶端連線請求的佇列長度
print('listending....') #進入監聽狀態
4.等待鏈結請求accept()
while true:
ret,new_addr = listen_socket.accpet()
print(ret)
print(new_addr)
#伺服器收資料
rew =ret.recv(1024) #對方關閉,recv不會阻塞,返回空字串
ret.recv(1024).close()
listen_socket.close()
---------------------------客戶端流程------------------------
def main():
#1. ---建立socket
tcp_socket =socket.socket(socket,af_inet,socket.sck_stream)
TCP程式設計
基於tcp 伺服器 程式設計步驟 1.建立乙個socket,用函式socket 2.繫結ip位址 埠等資訊到socket上,用函式bind 3.設定允許的最大連線數,用函式listen 4.等待來自客戶端的連線請求,用函式accept 5.收發資料,用函式send 和recv 或者read 和wri...
TCP程式設計
客戶端 匯入socket庫 import socket 建立乙個socket。af inet指ipv4協議,如果要用ipv6則指定af inet6.sock stream指定使用面向流的tcp協議 s socket.socket socket.af inet,socket.sock stream 建...
TCP程式設計
匯入socket庫 import socket建立乙個socket,並指明使用的哪個協議,af inet指使用ipv4協議,sock stream指建立tcp協議 s socket.socket socket.af inet,socket.sock stream s.connect www.sina...