基於UDP的伺服器和客戶端之間的通訊

2021-08-01 15:37:10 字數 2438 閱讀 6063

伺服器:

1、建立套接字

sock=socket(af_inet,sock_dgram,0)

2、繫結

0.0.0.0:8080 讓作業系統自由分配乙個有效的ip

3、收資料

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
4、發資料

ssize_t sendto(int sockfd, const

void *buf, size_t len, int flags,const

struct sockaddr *dest_addr, socklen_t addrlen);

**:

#include

#include

#include

#include

#include

#include

static

void use(char* proc)

int main(int argc,char* argv)

//建立套接字

int sock = socket(af_inet,sock_dgram,0);

if(sock<0)

struct sockaddr_in local;

local.sin_family = af_inet;

local.sin_port =htons(atoi(argv[2]));

local.sin_addr.s_addr = inet_addr(argv[1]);

socklen_t len = sizeof(local);

//繫結

if(bind(sock,(struct sockaddr*)&local,len)<0)

char buf[1024];

struct sockaddr_in client;

socklen_t _len=sizeof(client);

while(1)

else

//發資料

ssize_t _s = sendto(sock,buf,strlen(buf),0,(struct sockaddr*)&client,len);

if(_s<0)

}close(sock);

return

0;}

客戶端:

1、建立套接字

sock=socket(af_inet,sock_dgram,0)

2、發資料

ssize_t sendto(int sockfd, const

void *buf, size_t len, int flags,const

struct sockaddr *dest_addr, socklen_t addrlen);

3、收資料

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
**:

#include

#include

#include

#include

#include

#include

#include

static

void use(char* proc)

int main(int argc,char* argv)

//建立套接字

int sock =socket(af_inet,sock_dgram,0) ;

struct sockaddr_in peer;

peer.sin_family = af_inet;

peer.sin_port = htons(atoi(argv[2]));

peer.sin_addr.s_addr = inet_addr(argv[1]);

char buf[1024];

while(1)

}//收資料

基於UDP的伺服器端和客戶端

前面的文章中我們給出了幾個tcp的例子,對於udp而言,只要能理解前面的內容,實現並非難事。udp不像tcp,無需在連線狀態下交換資料,因此基於udp的伺服器端和客戶端也無需經過連線過程。也就是說,不必呼叫 listen 和 accept 函式。udp中只有建立套接字的過程和資料交換的過程。tcp中...

基於UDP的伺服器端和客戶端

前面的文章中我們給出了幾個 tcp 的例子,對於 udp 而言,只要能理解前面的內容,實現並非難事。udp 不像 tcp,無需在連線狀態下交換資料,因此基於 udp 的伺服器端和客戶端也無需經過連線過程。也就是說,不必呼叫 listen 和 accept 函式。udp 中只有建立套接字的過程和資料交...

基於UDP的伺服器端和客戶端

前面我們想過了tcp方式的,現在我們說下udp套接字的方式,內容較少,但是很實用。下面通過信件說明udp的工作原理,這是講解udp時使用的傳統示例,它與udp特性完全相符。寄信前應先在信封上填好寄信人和收信人的位址,之後貼上郵票放進郵筒即可。當然,信件的特點使我們無法確認對方是否收到。另外,郵寄過程...