成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TCP/UDP簡介

e10101 / 3514人閱讀

摘要:是位的整數(shù),以字符串形式表示地址,它是目前使用的的升級版,以字符串表示類似于。

基本概念
TCP   TCP(Transmission Control Protocol 傳輸控制協(xié)議)
UDP User Datagram Protocol的簡稱, 中文名是用戶數(shù)據(jù)報協(xié)議
IP 網(wǎng)絡(luò)之間互連的協(xié)議(IP)是Internet Protocol 協(xié)議 端口

協(xié)議:http https

TCP/IP協(xié)議:因為互聯(lián)網(wǎng)協(xié)議本身就包含很多協(xié)議標(biāo)準(zhǔn),但最重要的兩個協(xié)議就是TCP和IP協(xié)議,所以互聯(lián)網(wǎng)協(xié)議可以簡稱為TCP/IP協(xié)議

IP地址:如果想要連接一臺電腦,我們就需要知道這臺電腦的標(biāo)識,互聯(lián)網(wǎng)上為每臺電腦都提供一個唯一的標(biāo)識,這個標(biāo)識就是ip地址,類似于123.123.123.123
IP地址對應(yīng)的實際上是計算機的網(wǎng)路接口

IP協(xié)議:負(fù)責(zé)把數(shù)據(jù)從一臺計算機上通過協(xié)議發(fā)送給另一條計算機,數(shù)據(jù)會被切割成一小塊一小塊,通過IP包發(fā)送出去

IP包的特點:本身是以塊的形式發(fā)送數(shù)據(jù),但不保證能夠全部到達,也不能保證按順序到達

TCP協(xié)議:建立在IP協(xié)議之上,TCP協(xié)議負(fù)責(zé)把兩臺計算機之間建立可靠連接,保證數(shù)據(jù)按順序到達,
如果數(shù)據(jù)包丟失,會自動重新發(fā)送

IP地址
IPv4:是32位的整數(shù),以字符串形式表示ip地址,以字符串表示的IP地址如192.168.0.1實際上是把32位整數(shù)按8位分組后的數(shù)字表示,目的是便于閱讀。
123.123.123.123 0-255.0-255.0-255.0-255

IPv6: 是128位的整數(shù),以字符串形式表示ip地址,它是目前使用的IPv4的升級版,以字符串表示類似于2001:0db8:85a3:0042:1000:8a2e:0370:7334。

端口:為了區(qū)分不同的程序

一個完整的IP地址:
協(xié)議 IP 端口號
http://10.31.157.61:8080
電腦服務(wù)器默認(rèn)值端口80,人為重新設(shè)置端8080

鏈接新浪客戶端
# socket 套接字
# 通常我們用一個Socket表示“打開了一個網(wǎng)絡(luò)鏈接”,而
# 打開一個Socket需要知道目標(biāo)計算機的IP地址和端口號,再指定協(xié)議類型即可
"""

客戶端:向服務(wù)器發(fā)送請求,接受服務(wù)器的數(shù)據(jù)
服務(wù)器:接受客戶端的數(shù)據(jù),發(fā)送給客戶端數(shù)據(jù)

"""

import socket
# 1.創(chuàng)建一個socket對象
# 參數(shù)一:指定協(xié)議,AF_INETH或AF_INET6 (IPv4, IPv6)
# 參數(shù)二:SOCK_STREAM 使用TCP協(xié)議  以流的形式發(fā)送或接收數(shù)據(jù)
socket1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2.建立連接
# connnect的參數(shù)為一個元組類型的額數(shù)據(jù),第一個是IP 第二個是端口號
socket1.connect(("www.sina.com.cn", 80))


# 3 發(fā)送請求,要求請求新浪首頁的內(nèi)容并返回該內(nèi)容
# send的參數(shù)為字節(jié)類型
"""
GET/HTTP/1.1
GET:表示的是一種請求方式,將從服務(wù)器直接獲取數(shù)據(jù)(網(wǎng)址必須是完整的)
# 請求方式通常使用兩種:GET, POST
# 其他的請求方式:PUT DELETE
/ : 表示的是url路徑,url總是以/開始
HTTP/1.1: 協(xié)議版本, HTTP協(xié)議,版本1.1 目前也有支持1.0的版本的服務(wù)器
1.0和1.1的區(qū)別:1.1版本允許多個HTTP請求一個TCP鏈接,可以加快傳輸速度


Host: www.sina.com.cn:請求地址為www.sina.com.cn 如果一個服務(wù)器有多個網(wǎng)站
服務(wù)器需要使用Host來區(qū)別瀏覽器請求的地址

Connection:close 當(dāng)服務(wù)器發(fā)送給客戶端數(shù)據(jù)之后就自動斷開連接


: 每一個請求頭(header)使用
分開的


:表示Header結(jié)束 后面都是Body(請求體)部分


"""
socket1.send(b"GET / HTTP/1.1
Host: www.sina.com.cn
Connection: close

")

# 4. 接受數(shù)據(jù)
data = []
while True:
    # recv:接受數(shù)據(jù) 1024:每次允許接收1K的數(shù)據(jù)
    tmp = socket1.recv(1024)
    if tmp:
        data.append(tmp)
    else:
        break
# 5.拼接數(shù)據(jù)
# b""join() 按字節(jié)拼接 整體為字節(jié)類型bytes
dataStr = b"".join(data)

# 6.關(guān)閉連接
socket1.close()

header, html = dataStr.split(b"

", 1)
# 將字節(jié)解碼(utf-8) 解碼為字符串?dāng)?shù)據(jù)類型的數(shù)據(jù)
print(header.decode("utf-8"))


with open("sina.html",  "wb") as f:
    f.write(html)

TCP服務(wù)端
# TCP服務(wù)端

import socket
# 1.創(chuàng)建一個socket 用作服務(wù)端

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2.綁定一個IP地址及端口號

# 端口號的范圍 1-65536
# ip 地址 端口號
server.bind(("10.31.157.15", 43998))

# 3.監(jiān)聽
# 傳入的值在指定的拒絕鏈接之前允許鏈接的最大數(shù),該值至少為1
# 大部分設(shè)置為5即可
server.listen(5)
print("Waiting for connection...")

# 4.等待客戶端連接,會阻塞程序運行
# server.accept()  如果鏈接成功,會返回客戶端的socket及address
clientSocket, clientAddress = server.accept()
print(clientSocket)
print(clientAddress)

while True:
    # 5.接受客戶端數(shù)據(jù)
    data = clientSocket.recv(1024)
    print("客戶端說:",data.decode("utf-8"))

    # 6.發(fā)送數(shù)據(jù)給客戶端
    sendDate = input("請輸入想要發(fā)送的內(nèi)容:")
    clientSocket.send(sendDate.encode("utf-8"))
TCP客戶端
# TCP 客戶端

import socket

# 1.創(chuàng)建一個socket:用于客戶端

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2.創(chuàng)建鏈接:鏈接服務(wù)器
client.connect(("10.31.157.15", 43998))


while True:
# 3.客戶端發(fā)送給服務(wù)器端信息
    dataStr = input("請輸入想要發(fā)送給服務(wù)器的內(nèi)容")
    client.send(dataStr.encode("utf-8"))
    # 客戶端接受服務(wù)器端的信息
    data = client.recv(1024)
    print("服務(wù)器說:", data.decode("utf-8"))

多線程服務(wù)器
import socket
from threading import Thread # 線程

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("10.31.157.15", 43998))
server.listen(5)
print("Waiting for connection...")
# 等待客戶端連接

def chat(client, address):
    while True:
        data = client.recv(1024)
        print("客戶端",address,":", data.decode("utf-8"))
        sendData = input("服務(wù)器說:")
        client.send(sendData.encode("utf-8"))



# 等待客戶端連接
while True:
    clientSock, clientAddress = server.accept()
    print(clientAddress)
    # 接收數(shù)據(jù),發(fā)送數(shù)據(jù)放到線程
    threadChat = Thread(target=chat, args=(clientSock, clientAddress))
    # 啟動線程
    threadChat.start()
UDP介紹

TCP: 是建立可靠鏈接,服務(wù)器及客戶端都可接受發(fā)送數(shù)據(jù)
UDP : 不需要建立可靠鏈接,只需要知道對方的IP地址及端口號即可
UDP可以直接發(fā)送數(shù)據(jù),但對方能不能接收就不一定了

UDP的鏈接不可靠,但與TCP相比,速度快,對于需求不高的數(shù)據(jù)可以使用UDP

飛秋群發(fā)
import socket
# UDP SOCK_DGRAMY以包的形式傳輸數(shù)據(jù)
socket1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

str1 = "1_lbt4_10#32499#002481627512#0#0#0:1289671407:名字:備注:288:發(fā)送的內(nèi)容"

for i in range(1,255):
    address = ("10.31.162.%s"%(i),2425)
    socket1.sendto(str1.encode("gbk"), address)
UDP服務(wù)器
import socket

# 1.創(chuàng)建socket

server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 2.綁定
server.bind(("10.31.157.15", 39999))


while True:
    # 3.接受數(shù)據(jù) recvfrom
    data, address = server.recvfrom(1024)
    print(address,"說:", data.decode("utf-8"))
    # 4.發(fā)送數(shù)據(jù)
    sendStr = input("發(fā)送的數(shù)據(jù)為:")
    server.sendto(sendStr.encode("utf-8"), address)

UDP客戶端
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print("Waiting for connection...")
while True:
    # 發(fā)送數(shù)據(jù)
    sendStr = input("客戶發(fā)送:")
    client.sendto(sendStr.encode("utf-8"), ("10.31.157.15", 39999))
    # 接收數(shù)據(jù)
    data, address = client.recvfrom(1024)
    print(address, "服務(wù)端說:", data.decode("utf-8"))





文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41643.html

相關(guān)文章

  • 【私有網(wǎng)絡(luò) UVPC】網(wǎng)絡(luò)ACL簡介,ACL規(guī)劃已經(jīng)操作指南

    摘要:關(guān)聯(lián)子網(wǎng)創(chuàng)建網(wǎng)絡(luò)后,用戶可將該與所屬下的任意子網(wǎng)進行綁定和解綁。支持子網(wǎng)內(nèi)全部資源子網(wǎng)內(nèi)指定資源。因此需要額外添加一條針對同子網(wǎng)網(wǎng)段的放行規(guī)則。網(wǎng)絡(luò)網(wǎng)絡(luò)是子網(wǎng)級別的安全策略,用于控制進出子網(wǎng)的數(shù)據(jù)流。網(wǎng)絡(luò)ACL簡介網(wǎng)絡(luò)ACL是子網(wǎng)級別的安全策略,用于控制進出子網(wǎng)的數(shù)據(jù)流。用戶可以通過設(shè)置出站規(guī)則和入站規(guī)則,對進出子網(wǎng)的流量進行精確控制。網(wǎng)絡(luò)ACL是無狀態(tài)的,例如用戶如果需要允許某些訪問,則需...

    Tecode 評論0 收藏0
  • Android 面試必備 - 計算機網(wǎng)絡(luò)基本知識(TCPUDP,Http,https)

    摘要:在網(wǎng)絡(luò)層有協(xié)議協(xié)議協(xié)議協(xié)議和協(xié)議。而且,因為有確認(rèn)機制三次握手機制,這些也導(dǎo)致容易被人利用,實現(xiàn)等攻擊。沒有的這些機制,較被攻擊者利用的漏洞就要少一些。但也是無法避免攻擊的,比如攻擊缺點不可靠,不穩(wěn)定。 簡介 HTTP協(xié)議(超文本傳輸協(xié)議)和 UDP(用戶數(shù)據(jù)包協(xié)議),TCP 協(xié)議(傳輸控制協(xié)議) TCP/IP是個協(xié)議組,可分為四個層次:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。在網(wǎng)絡(luò)層有I...

    My_Oh_My 評論0 收藏0
  • 網(wǎng)絡(luò)ACL簡介 私有網(wǎng)絡(luò) UVPC

    摘要:網(wǎng)絡(luò)簡介網(wǎng)絡(luò)簡介本篇目錄關(guān)聯(lián)子網(wǎng)關(guān)聯(lián)子網(wǎng)出站入站規(guī)則出站入站規(guī)則產(chǎn)品配額產(chǎn)品配額網(wǎng)絡(luò)是子網(wǎng)級別的安全策略,用于控制進出子網(wǎng)的數(shù)據(jù)流。用戶對網(wǎng)絡(luò)規(guī)則的更新,會自動應(yīng)用到與其相關(guān)聯(lián)的子網(wǎng)。支持子網(wǎng)內(nèi)全部資源子網(wǎng)內(nèi)指定資源。 網(wǎng)絡(luò)ACL簡介本篇目錄關(guān)聯(lián)子網(wǎng)出站/入站規(guī)則產(chǎn)品配額網(wǎng)絡(luò)ACL是子網(wǎng)級別的安全策略,用于控制進出子網(wǎng)的數(shù)據(jù)流。用戶可以通過設(shè)置出站規(guī)則和入站規(guī)則,對進出子網(wǎng)的流量進行精確控制...

    ernest.wang 評論0 收藏171

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<