C C UDP套接字之一般流程

2021-08-02 09:58:56 字數 2782 閱讀 7183

1. //初始化套接字環境wsastartup

2. //初始化位址和埠

3. //建立udp套接字socket

4. //繫結埠bind

5. //用recvfrom接收資料

6. //用sendto傳送資料

7. //退出或者返回第5步繼續

1. //初始化套接字環境wsastartup

2. //初始化位址和埠

3. //建立udp套接字socket

4. //用sendto傳送資料

5. //用recvfrom接收資料

#include #include #include #pragma comment(lib, "ws2_32.lib")

using namespace std;

int main()

//2、初始化位址和埠

unsigned short cport = 6556;

sockaddr_in serveraddr, clientaddr;

serveraddr.sin_family = af_inet;

serveraddr.sin_port = htons(cport);//埠

serveraddr.sin_addr.s_un.s_addr = htonl(inaddr_any);//ip

//3、建立udp套接字socket

socket server = socket(af_inet, sock_dgram, 0);//make a socket

if (server == invalid_socket)

//4、繫結埠bind

int retval = bind(server, (sockaddr*)(&serveraddr), sizeof(serveraddr));//bind socket to address

if (retval == socket_error)

//5、用recvfrom接收資料

int len = sizeof(clientaddr);

while (1)

; int r = recvfrom(server, buf, 256, 0, (sockaddr*)&clientaddr, &len);

if (r == socket_error)

uint uip = clientaddr.sin_addr.s_un.s_addr;

printf("%s 來自於ip:%d.%d.%d,%d \n", buf, lobyte(uip), hibyte(uip), lobyte(hiword(uip)), hibyte(hiword(uip)));

//6、用sendto傳送資料

char sbuf[256] = {};

cin.getline(sbuf, 256);

sendto(server, sbuf, 256, 0, (sockaddr*)&clientaddr, len);

//7、退出或者返回第5步繼續

} getchar();

getchar();

return 0;

}

#include #include #include #pragma comment(lib, "ws2_32.lib")

using namespace std;

int main()

//2、初始化位址和埠

unsigned short cport = 6556;

sockaddr_in serveraddr, clientaddr;

serveraddr.sin_family = af_inet;

serveraddr.sin_port = htons(cport);//埠

serveraddr.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");//ip

//3、建立udp套接字socket

socket client = socket(af_inet, sock_dgram, 0);//make a socket

if (client == invalid_socket)

//6、用sendto傳送資料

while (1)

; cin.getline(sbuf, 256);

sendto(client, sbuf, 256, 0, (sockaddr*)&serveraddr, sizeof(serveraddr));

//5、用recvfrom接收資料

int len = sizeof(clientaddr);

char buf[256] = {};

int r = recvfrom(client, buf, 256, 0, (sockaddr*)&clientaddr, &len);

if (r == socket_error)

uint uip = clientaddr.sin_addr.s_un.s_addr;

printf("%s 來自於ip:%d.%d.%d,%d \n", buf, lobyte(uip), hibyte(uip), lobyte(hiword(uip)), hibyte(hiword(uip)));

//7、退出或者返回第5步繼續

} getchar();

getchar();

return 0;

}

互發資料:

測試一般流程

目錄 一 測試準備階段 1.1 需求評審 1.2 測試計畫 1.3 測試用例 二 測試階段 2.1 開發自測 2.2 產品設計走查 2.3 測試接入測試 2.4 產品驗收階段 三 上線階段 3.1 與專案人員確認上線時間與策略 3.2 準備線上回歸的賬號,資料等 3.3 執行緊急回滾的策略 3.4開...

套接字聯網API之一 TCP套接字

最近學習了unix網路程式設計,套接字聯網api,書中的內容狠經典,很所部分的細節較少較多,主要部分的內容自己經常容易忽略。下面介紹自己理解的最基礎的內容 1.所有套接字有關的函式出錯時的返回值都是 1 2.服務端 1 建立乙個套接字 int socket int,int,int 2 與位址和埠繫結...

專案的一般流程

軟體專案一般流程可分為3大段 需求設計 編碼測試 執行除錯。一 需求設計 1.首先要做需求報告,和使用者溝通需要實現的功能,以及相關的資料和業務邏輯。然後做er圖 cdm和pdm,再做類圖,用軟體直接生成相關 專案組成員需要反覆論證邏輯是否正確,需要吵架吵架再吵架!否則以後就要麻煩。2.將前期所用 ...