用c++寫乙個udp傳送和接收程式
2011-03-18 13:10:16
分類: c/c++
傳送程式sender.cpp:
#include
#include
#include
#include
using namespace std;
//建立新的套接字之前需要呼叫乙個引入ws2_32.dll庫的函式,否則伺服器和客戶端連線不上
#pragma comment(lib,"ws2_32.lib")
struct test ;
struct udpheartpack ;
int main(int argc, char* argv)
//******************** 第二步建立乙個資料報型別的udp套接字 ******************//
socklistener=socket(pf_inet,sock_dgram,0);
// setsockopt函式用於設定套介面選項
// 採用廣播形式須將第三個引數設定為so_broadcast
setsockopt ( socklistener,sol_socket,so_broadcast, (char *)&fbroadcast, sizeof (bool) );
// 引數設定,注意要將ip位址設為inaddr_broadcast,表示傳送廣播udp資料報
saudpserv.sin_family = af_inet;
saudpserv.sin_addr.s_addr = htonl ( inaddr_broadcast );
saudpserv.sin_port = htons (udp_port); //傳送用的埠,可以根據需要更改
while(1) //迴圈傳送資料
//********************* 第四步關閉socket ***************************************//
closesocket(socklistener); //關閉監聽socket
wsacleanup();
return 0;
}const static int buffer_length = 12;
接收端程式receiver.cpp:
#include
#include
#include
//建立新的套接字之前需要呼叫乙個引入ws2_32.dll庫的函式,否則伺服器和客戶端連線不上
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv)
socklistener=socket(af_inet, sock_dgram,0);
sin.sin_family = af_inet;
sin.sin_port = htons(7001); //傳送端使用的傳送埠,可以根據需要更改
sin.sin_addr.s_addr = htonl(inaddr_any);
if(bind( socklistener, (sockaddr far *)&sin, sizeof(sin))!=0)
while(1)
crecvbuff[nbsize] = '\0'; //字串終止
printf("%s\n",crecvbuff); //顯示所接收到的字串
}return 0;
}執行結果如下:
用python寫乙個udp套接字傳送訊息
大概框架是這個樣子的 在執行程式之前,你首先要做的是確保你要連線套接字的電腦與你的電腦能夠ping通。也就是說確保你們在同乙個網段裡。所有準備工作都做完了,最後在敲 就簡單很多了 import socket def main while true udp socket socket.socket s...
C 接收和傳送UDP資料
除了點對點,通常udp資料的傳遞方式有兩種,一種是broadcast,一種是multicast。中文一般把它們翻譯作廣播和組播。前者是簡單的在區域網裡面廣播 後者是借助路由器將資料傳送到包括英特網在內的任何多個位址。在c 裡面,處理udp通訊最簡單的方法就是使用udpclient。具體使用方法我也不...
C 接收和傳送UDP資料
除了點對點,通常udp資料的傳遞方式有兩種,一種是broadcast,一種是multicast。中文一般把它們翻譯作廣播和組播。前者是簡單的在區域網裡面廣播 後者是借助路由器將資料傳送到包括英特網在內的任何多個位址。在c 裡面,處理udp通訊最簡單的方法就是使用udpclient。具體使用方法我也不...