Linux 網路程式設計(二)UDP程式設計

2021-07-29 00:27:35 字數 3272 閱讀 1108

資料報通訊;對於資料報通訊的伺服器端來說,它不必再在乙個埠上偵聽,以等待建立連線,而只需生成乙個埠描述符,並且把這個埠描述符繫結到本地位址上就可以了。

udp網路程式設計具體的操作流程為:

使用系統呼叫socket()來獲得檔案描述符,該呼叫的宣告格式為:

connect()系統呼叫由客戶端呼叫,它的用法如下:

可以使用close()呼叫關閉連線的套介面檔案描述符,它的呼叫方式為:

close(sockfd);

//這樣以後就不能再對此套介面進行任何的讀/寫操作了。

//使用系統呼叫shutdown(),可有更多的控制權

intshutdown(int sockfd, int how);

int shutdown(int sockfd, int how)udp伺服器端的程式:

/*udpserver.c*/

#include

#include

#include

#include

#include

#define server_port 8888//繫結埠

#define max_msg_size 1024//資料最大位元組為1024

void udps_respon(int sockfd)

}int main(void)

bzero(&addr,sizeof(struct sockaddr_in));

addr.sin_family = af_inet;

addr.sin_addr.s_addr = htonl(inaddr_any);

addr.sin_port = htons(server_port);

if(bind(sockfd,(struct sockaddr*)&addr,sizeof(struct sockaddr_in))<0)

udps_respon(sockfd);

close(sockfd);

}

udp客戶端的程式:

/*客戶端程式udpclient.c,使用方法udpclient serverip serverport*/

#include

#include

#include

#include

#include

#include

#define max_buf_size 1024

void udpc_requ(int sockfd,const

struct sockaddr_in *addr,int len)

}int main(int argc,char **argv)

if((port = atoi(argv[2]))<0)

sockfd = socket(af_inet,sock_dgram,0);

if(sockfd<0)

/*填充服務端的資料*/

bzero(&addr,sizeof(struct sockaddr_in));

addr.sin_family = af_inet;

addr.sin_port = htons(port);

if(inet_aton(argv[1],&addr.sin_addr)<0)

udpc_requ(sockfd,&addr,sizeof(struct sockaddr_in));

close(sockfd);

}

在linux上執行,我的伺服器是centos無圖形化介面的:

在客戶端輸入:「123456789」

伺服器端顯示:「123456789」

電腦端開啟tcp/udp測試軟體輸入:「987654321」

伺服器端顯示:「987654321」

完美!

linux網路程式設計 udp

udp udp收發 udp 協議不需要建立連線,類似於傳送簡訊,因此 udp 的程式設計方式比 tcp 更加簡單。udp 有其自己特有的接受與傳送資料的函式 socket af inet,sock dgram,0 建立socket bind socket fd,struct sockaddr ser...

Linux網路程式設計 UDP程式設計例項

使用udp協議通訊時伺服器端和客戶端無需建立連線,只要知道對方套接字的位址資訊,就可以傳送資料。伺服器端只需建立乙個套接字用於接收不同客戶端發來的請求,經過處理後再把結果傳送給對應的客戶端。伺服器端和客戶端使用udp的流程如下圖示 伺服器端 server.c include include incl...

Linux 網路程式設計之UDP

1.介紹 udp協議是無連線的,不可靠傳輸的協議.伺服器與客戶端的互動不需要建立連線,沒有流量控制的功能。與tcp一樣,它也是傳輸層協議,通訊過程中需要ip位址與埠號。使用udp進行程式設計包括伺服器與客戶端,下面介紹一下伺服器與客戶端的通訊流程 伺服器流程 1 建立伺服器套接字描socket 2 ...