乙個簡單基於UDP的回顯C S 一

2021-08-10 06:16:45 字數 1866 閱讀 6429

問題:伺服器端意外崩潰或重啟,客戶端不得而知

特點:迭代伺服器

服務端**:

vi s4.c

#include 

#include

#include

#include

#include

#include

#include

#define serv_port 9877

#define maxline 4096

void server(int sockfd,struct sockaddr* servaddr,size_t len)

if (sendto(sockfd,buf,n,0,(struct sockaddr*)servaddr,servlen) != n)

}}int main()

struct sockaddr_in servaddr;

bzero(&servaddr,sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(serv_port);

servaddr.sin_addr.s_addr = htonl(inaddr_any);

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

server(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));

return

0;}

客戶端**:

vi c4.c

#include 

#include

#include

#include

#include

#include

#include

#define serv_port 9877

#define maxline 4096

void client(file *fp,int sockfd,const

struct sockaddr* servaddr,socklen_t len)

socklen_t servlen = len;

while (1)

if (sendto(sockfd,buf,n,0,servaddr,len) != n)

if ((n = recvfrom(sockfd,buf,maxline,0,null,null)) < 0)

if (write(fd,buf,n) != n)

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

int sockfd;

if ((sockfd = socket(af_inet,sock_dgram,0)) < 0)

struct sockaddr_in servaddr;

bzero(&servaddr,sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(serv_port);

if (inet_pton(af_inet,argv[1],&servaddr.sin_addr) < 0)

client(stdout,sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr));

return

0;}

第二次鍵入時,伺服器端已經終止

乙個基於UDP的回顯C S 二

解決問題 通過connect,使伺服器端意外崩潰,重啟,客戶端能通過read函式而得知 伺服器端 vi s4.c include include include include include include include define serv port 9877 define maxline ...

乙個簡單的UDP廣播例子 含C S

乙個簡單的udp廣播通訊的例子程式,含有服務端和客戶端的 服務端 include stdafx.h include include pragma comment lib,ws2 32.lib int tmain int argc,tchar argv if 2 hibyte wsadata.wver...

用udp實現乙個回顯伺服器

1.ip 2.埠號3.udp協議4.網路位元組序記憶體中的多位元組資料相對於記憶體位址有大端和小端之分,磁碟檔案中的多位元組資料相對於檔案中的偏 移位址也有大端小端之分,網路資料流同樣有大端小端之分 c語言庫函式 網路位元組序和主機位元組序的轉換 include uint32 t htonl uin...