1. 程式人生 > >udp socket的bind問題

udp socket的bind問題

最近在寫udp程式的時候,對udp是否有必要bind存在了一定的疑惑,針對這個問題在網上查找了一些相關文章,並自己也寫了部分程式碼進行驗證。下面寫出了自己的一點認識和感受。

眾所周知,udp不是stream的,實際上沒有什麼標定的服務端和客戶端之類的(習慣上認為接收資料的一端為服務端,傳送資料的一端為客戶端),那麼bind還有意義嗎?我個人認為主要看你是怎麼用的,bind主要是指定建立的socket的有效範圍,即這個socket涉及的有效ip地址和埠號,我們在建立socket後,往往要先設定插口的引數,比如快取區大小,還有就是有效的ip地址,埠號等,使用bind就是使得這些設定生效。比如:

對於傳送資料端,如果不用bind,則無固定埠傳送,系統會自動選取一個埠(範圍在1024--5000之間)傳送資料。如果使用bind,就是用指定的埠傳送資料。實際上,傳送端一般只需要在sendto函式中指定對端ip地址和埠即可,至於本地是使用哪個埠傳送應該無所謂,所以傳送資料一般不需要bind。

對於接收資料端,一般在實際應用中都會指定接收XX埠的資料,所以接收資料一般使用bind。

相關推薦

TCP/UDP協議

lan 有時 body aik htm 默認 tab 協調 不同 TCP和UDP是OSI模型中的運輸層中的協議。TCP提供可靠的通信傳輸,而UDP則常被用於讓廣播和細節控制交給應用的通信傳輸。 連接: 面向連接的TCP "面向連接"就是在正式通信前必須要與對方建立起連接。比

基於upd的socketserver,即udp的多線程

rip strip() pri socket send while handle for hand 服務端 #udp服務端多進程import socketserverclass My_server(socketserver.BaseRequestHandler): d

基於udp的socket

nco utf utf-8 decode dcl 收發信息 是否 客戶端 用戶 服務端 #udp叫用戶數據報協議,它不會出現粘包形象,但會出現信息缺失#udp服務端單進程‘‘‘import socketudpserver =socket.socket(socket.AF_I

iOS中UDP的使用

ios receive str add rec void enc array 區分 // // ViewController.m // UDPDemo // // Created by qianfeng01 on 15-8-13. // Copyright (c

TCP/UDP協議簡要梳理

重復數 文件下載 相對 協議 proto 可靠性 提交 需要 wid TCP/UDP協議簡要梳理 TCP TCP,Transmission Control Protocol,傳輸控制協議是一種面向連接的、可靠的、基於字節流的傳輸層通信協議。在因特網協議族中,TCP所在的層位

理解TCP和UDP協議

還要 資源 tcp 協議 code 長時間 tcp連接 一對多 客戶機 情況 目錄 TCP 協議 UDP協議 TCP和UDP的區別 TCP和UDP的使用場景 一 TCP協議 1.TCP的頭部格式 理解TCP協議,首要的就是TCP協議的頭部格式 ·

tcp,udp報文最大長度

操作 miss 單元 格式 如果 mission mis src size   tcp,udp報文最大長度是怎麽樣的呢? 先來看看各個報文格式: ip報文 tcp報文 udp報文 ip和udp都有16位的長度字段,所以ip和udp報文的最大負載長度應該為2^16,64

UDP傳輸案例

nts sender oca auto bytes ktr exception sleep true 1 /** 2 * 發送方 3 */ 4 public class DataGramSender { 5 6 public static voi

TCP與UDP協議

效果 數量 傳輸層 理解 1-1 程序 二次 nbsp 連接 概述   首先要看TCP/IP協議,涉及到四層:接入層,網絡層,傳輸層,應用層。TCP/IP協議簇是由OSI七層模型發展而來的。  參考文檔   其中以太網(Ethernet)的數據幀在鏈路層     IP

tcp和udp之間區別的

比較 需要 快速 區別 復雜 udp 連接 可能 順序 1.tcp需要建立連接   udp不需要建立連接 2.tcp占用系統資源大   udp占用系統資源少 3.tcp結構復雜   udp結構簡單 4.tcp使用的是stearm流模式   udp使用的是Dragm數據報模式

【java】TCP和UDP傳輸協議

有序 equal sig [] link 客戶端 數據傳輸 端口 sock TCP協議和UDP協議的比較 TCP的全稱是Transmission Control Protocol (傳輸控制協議) 傳輸控制協議,是一種面向連接的協議,類似打電話 在通信的整個過程中

[C# 網絡編程系列]專題七:UDP編程補充——UDP廣播程序的實現

tca ssa 程序 als learn ans targe focus ase 上次因為時間的關系,所以把上一個專題遺留下的一個問題在本專題中和大家分享下,本專題主要介紹下如何實現UDP廣播的程序,下面就直接介紹實現過程和代碼以及運行的結果。 一、程序實現 UDP廣播程序

[C# 網絡編程系列]專題六:UDP編程

單播 using 功能 .get 掩碼 ati multi 內容 協議 紹了TCP編程的一些知識,UDP與TCP地位相當的另一個傳輸層協議,它也是當下流行的很多主流網絡應用(例如QQ、MSN和Skype等一些即時通信軟件傳輸層都是應用UDP協議的)底層的傳輸基礎,所以在本專

Linux高危漏洞曝光:Linux 內核 ipv4/udp.c 遠程恣意代碼執行

linux高危漏洞漏洞描述Linux kernel是美國Linux基金會發布的操作體系Linux所使用的內核。Linux kernel 4.5之前的版別中的udp.c文件存在安全縫隙,Linux內核中的udp.c答應長途攻擊者經過UDP流量履行恣意代碼,這些流量會在履行具有MSG_PEEK象征的recv體系調

UDP網絡通信程序

start inet_addr 接收 star sts lists list brush ket //服務器端 #include "Winsock2.h" #include "stdio.h" #pragma comment(lib, "ws2_32.lib")

udp如何實現可靠性傳輸?

不能 處理 pad 實體 特性 name 們的 生成 tro 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 目錄(?)[+] 1udp與tcp的區別 TCP(TransmissionControl Protocol 傳輸控制協議)

初識Socket通信:基於TCP和UDP協議學習網絡編程

auth bsp servers 客戶 name 本地 監聽 max ava 學習筆記: 1.基於TCP協議的Socket網絡編程:   (1)Socket類構造方法:在客戶端和服務器端建立連接     Socket s = new Socket(hostName,port

TCP/UDP客戶端

response target 發送 垃圾 .py 測試的 要求 轉換 創建 Python 網絡編程————模塊socekt 在滲透測試的過程中,經常會遇到需要創建一個TCP客戶端來連接服務器、發送垃圾數據、進行模糊測試活進行其他任務的情況。 簡單的TCP客戶端代碼:

Windows UDP sockets: recvfrom() fails with error 10054

define bytes def clu urn with fine sizeof pip https://stackoverflow.com/questions/34242622/windows-udp-sockets-recvfrom-fails-with-error-

TCP、UDP、HTTP、SOCKET之間的區別

安全 其他 出錯 tcp、udp 應用程序 網絡層 傳輸協議 客戶端 連接 IP:網絡層協議; TCP和UDP:傳輸層協議; HTTP:應用層協議; SOCKET:TCP/IP網絡的API。 TCP/IP代表傳輸控制協議/網際協議,指的是一系列協議。 TCP和UDP使用IP