udp廣播傳送端與接收端demon 超詳細注釋

2021-10-07 21:49:10 字數 2418 閱讀 9802

udp廣播收發經典demon,超詳細注釋

1、傳送端

/***************************************

**demon:廣播傳送端 author:樂樂

****************************************/

#include

#include

#include

#include

#include

#include

#define port 19999

//埠號

#define maxdatasize 256

intmain()

;//傳送的資訊

sockfd =

socket

(af_inet, sock_dgram,0)

;//af_inet使用ipv4協議

//資料報套接字型別為sock_dgram //第三位,除原始套接字都可以置零

setsockopt

(sockfd, sol_socket, so_broadcast,

&opt,

sizeof

(opt));

//設定套接字屬性

bzero

(&self_addr,

sizeof

(self_addr));

//清空self_addr

self_addr.sin_family = af_inet;

//定義為ipv4協議

self_addr.sin_addr.s_addr =

htonl

(inaddr_broadcast)

;//代表255.255.255.255的廣播位址,廣播訊息不會在當前路由器進行**,作用範圍只能在當前區域網

self_addr.sin_port =

htons

(port)

;while(1

) j++

;printf

("udp---傳送廣播===1秒== tmp=%d \n"

,j);

if(j>5)

sleep(1

);//1s

}return0;

}

二、接收端

/***************************************

**demon:廣播接收端 author:樂樂

****************************************/

#include

#include

#include

#include

#include

#include

#include

#define port 19999

//埠號

intmain()

; memset (recvline,

'\0'

,256);

struct sockaddr_in recv_addr;

//初始化套接字位址

socklen_t len;

sockfd =

socket

(af_inet, sock_dgram,0)

;//af_inet使用ipv4協議

//資料報套接字型別為sock_dgram //第三位,除原始套接字都可以置零

bzero

(&saddr,

sizeof

(saddr));

//清空saddr

saddr.sin_family = af_inet;

//定義為ipv4協議

saddr.sin_addr.s_addr =

htonl

(inaddr_any)

;//inaddr_any就是指定位址為0.0.0.0的位址

saddr.sin_port =

htons

(port)

;//埠號

bind

(sockfd,

(struct sockaddr*

)&saddr,

sizeof

(saddr));

//建立本地**

while(1

) i++

;printf

("recvfrom %s| msg=%s | %d \n"

,inet_ntoa

(recv_addr.sin_addr)

,recvline,i);}

return0;

}

3、執行結果

UDP通訊 聊天示例(接收端 傳送端)

1 傳送send 2 接收端receive 3 接收方獲取ip和埠號 4 傳送端 實現 public static void main string args throws exception5 接收端 實現 public static void main string args throws ex...

UDP程式設計之實現接收端與傳送端的持續通訊

1.udp程式設計步驟 1 傳送端 2 接收端 2.此blog實現的功能 傳送端不斷傳送,接收端不斷接收 測試手動輸入,螢幕輸出 3.思路 從system.in中讀取,將位元組陣列傳送 1 方法一 傳送端 直接用bufferedinputstream從位元組流system.in中讀取buffered...

UDP組播接收端解析

網路中的一台主機如果希望能夠接收到來自網路中其它主機發往某乙個組播組的資料報,那麼這麼主機必須先加入該組播組,然後就可以從組位址接收資料報。在廣域網中,還涉及到路由器支援組播路由等,但本文希望以乙個最為簡單的例子解釋清楚協議棧關於組播的乙個最為簡單明瞭的工作過程,甚至,我們不希望涉及到 igmp包。...