linux udp通訊程式

2021-09-22 14:14:42 字數 1158 閱讀 9299

服務端程式為:

#include

#include

#include

#include

#include

#include

#include

int main()

;recvfrom(isock, szbuf, sizeof(szbuf) - 1, 0, (struct sockaddr *)&srvaddr, (socklen_t*)&srvaddrlen); // 注意: 這裡用srvaddr是不好的,應該用cliaddr,表示對方位址

printf("msg from client [%s]\n", szbuf);

}close(isock);

return 0;

}客戶端程式為:

#include

#include

#include

#include

#include

#include

#include

int main()

;snprintf(szbuf, sizeof(szbuf), "hello %d", ++i);

sendto(isock, szbuf, strlen(szbuf) + 1, 0, (struct sockaddr *)&srvaddr, sizeof(srvaddr));

}close(isock);

return 0;

}makefile為:

all: server client

server: server.o

g++ -o server  server.o

client: client.o

g++ -o client  client.o

server.o: server.cpp

g++ -c server.cpp

client.o:client.cpp

g++ -c client.cpp

clean:

rm -f server client *.o

編譯並執行, 先啟動服務端, 然後啟動客戶端。 因為程式中有getchar卡住, 所以我們需要按enter鍵來控制客戶端的傳送和服務端的接受。

--------------------- 

原文: 

linux UDP廣播通訊

2013 02 04 10 18 3881人閱讀收藏 舉報 c 語言 89 linux system 153 在除錯區域網內通過udp協議獲取其他裝置ip位址時,伺服器使用udp 廣播後,客戶端裝置無響應.先研究一下正常情況下,udp廣播通訊方法.參考了網路上一寫資料.整理如下 伺服器端向 255....

linux UDP 通訊使用例項

udp server程式 1 編寫udp server程式的步驟 1 使用socket 來建立乙個udp socket,第二個引數為sock dgram。2 初始化sockaddr in結構的變數,並賦值。sockaddr in結構定義 struct sockaddr in 這裡使用 08 作為服務...

Linux UDP實現廣播

特點 較tcp來講udp無需建立連線可以直接傳送訊息,udp是對網路環境完全不彌補的協議,所以使用dup就要允許有一定的丟包率,udp廣播是面向區域網內所有的裝置的。對比tcp連線時服務端的ip位址的重要性來講,udp廣播中本機的ip顯得並不重要了。在udp廣播中不同於tcp的我們需要對網路套接字設...