基於UDP協議的Socket網路程式設計

2021-08-07 03:07:30 字數 1688 閱讀 7361

一、基於udp協議的socket網路程式設計流程:

採用 udp 套接字方式實現c/s的通訊程式由客戶端和伺服器端兩部分組成。

伺服器端程序依次按以下步驟進行:

1) 呼叫socket()建立乙個資料報套接字;

2) 呼叫 bind()把伺服器位址繫結在該套接字上;

3) 呼叫recvform()等待客戶程序發來的請求,伺服器此時處於無限迴圈狀態;

4) 服務程序接收到客戶程序所發來的資料報後,進行處理,呼叫 sendto()將處理結果返回給客戶程序,返回狀態3) 繼續監聽;

5) 服務程序呼叫 close()撤消套接字,終止服務。

客戶端程序則按以下步驟進行:

1) 呼叫socket ()建立乙個資料流套接字;

2) 呼叫sendto () 向伺服器程序傳送資料報;

3) 呼叫recvfrom()等待伺服器程序返回該處理結果;

4)客戶程序呼叫close()撤消套接字。

二、**如下:

伺服器端**:udp_server.c

#include

#include

#include

#include

#include

#include

#include

#include

#include

void main()

; int len=sizeof(cli);

recvfrom(sock,buff,127,0,(struct sockaddr*)&cli,&len);

printf("srcaddr:%s,port:%d\n",inet_ntoa(cli.sin_addr),

ntohs(cli.sin_port));

printf("buff:%s\n",buff);

sendto(sock,"ok",2,0,(struct sockaddr*)&cli,len);

}close(sock);

}

客戶端**udp_client.c

#include

#include

#include

#include

#include

#include

#include

#include

#include

void main()

; fgets(buff,128,stdin);

buff[strlen(buff)-1]=0;

int len=sizeof(cli);

sendto(sock,"ok",strlen(buff),0,(struct sockaddr*)&ser,sizeof(ser));

memset(buff,0,128);

recvfrom(sock,buff,127,0,null,null);

printf("%s\n",buff);

}close(sock);

}

基於UDP協議的socket程式設計

一 socket概述 1.socket一般被稱為 套接字 網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端就叫做socket。2.建立網路通訊連線至少需要乙個埠號 socket socket利用網路之間的通訊設施實現程序通訊,但它對通訊設施的細節不關心,只要通訊設施能夠提供足夠的...

基於UDP協議的socket程式設計

udp協議特點 1.無連線。服務端與客戶端傳輸資料之前不需要進行連線,且沒有超時重發等機制,只是把資料通過網路傳送出去。也正是因為此特點,所以基於udp協議的socket的客戶端在啟動之前不需要先啟動服務端。2.不可靠。資料在本地通過網路發出之後,udp協議會立即清除本地的快取,即使對方沒有收到該資...

基於Socket的UDP和TCP協議

一 概述 tcp 傳輸控制協議 和udp 使用者資料報協議 是網路體系結構tcp ip模型中傳輸層一層中的兩個不同的通訊協議。tcp 傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,tcp套介面是位元組流套介面 stream socket 的一種。udp 使用者資料報協議。...