Socket程式設計 簡單回射伺服器的實現

2021-08-17 05:29:46 字數 2081 閱讀 1926

#include #include #include #include #include #include #include #include #include #define err_exit(m)			\

do \

while(0); \

int main(void)

/*if(listenfd = socket(pf_inet,sock_stream,0)<0)*/

struct sockaddr_in servaddr;

memset(&servaddr,0,sizeof(servaddr)); //初始化

servaddr.sin_family = af_inet; //位址族

servaddr.sin_port = htons(5188); //埠號

servaddr.sin_addr.s_addr = htonl(inaddr_any);

/*seraddr.sin_addr.s_addr = inet_addr("127.0.0.1");*/

/*iner_aton("127.0.0.1",&servaddr.sin_addr);*/

/*設定位址重複利用*/

int on = 1;

if(setsockopt(listenfd,sol_socket,so_reuseaddr,&on,sizeof(on)) < 0)

/*繫結*/

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

/*繫結監聽*/

if(listen(listenfd,somaxconn) < 0)

struct sockaddr_in peeraddr; /*目標位址*/

socklen_t peerlen = sizeof(peeraddr);

int conn; /*已連線套接字*/

/*等待連線*/

if( (conn = accept(listenfd,(struct sockaddr*)&peeraddr,&peerlen)) < 0 )

else }

close(conn);

close(listenfd);

return 0;

}

客戶端:

#include #include #include #include #include #include #include #include #include #define err_exit(m)			\

do \

while(0); \

int main(void)

; char recvbuf[1024] = ;

if((sock = socket(pf_inet,sock_stream,ipproto_tcp))<0)

/*if(listenfd = socket(pf_inet,sock_stream,0)<0)*/

struct sockaddr_in servaddr;

memset(&servaddr,0,sizeof(servaddr)); //初始化

servaddr.sin_family = af_inet; //位址族

servaddr.sin_port = htons(5188); //埠號

/*servaddr.sin_addr.s_addr = htonl(inaddr_any);*/

servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");

/*iner_aton("127.0.0.1",&servaddr.sin_addr);*/

if( connect(sock,(struct sockaddr*)&servaddr,sizeof(servaddr)) < 0)

else

} close(sock);

return 0;

}

測試效果:

TCP 回射伺服器

tcp reflect server client tcp回射伺服器。學習了 unp 的第五章前面的知識,自己把 敲出來了,加深了理解吧。簡單地說就是,client傳送給server一條訊息 一行文字 server再將同樣地訊息傳送回client。就像這樣 用到的函式和api包括 1 socket ...

Linux C 回射伺服器

回射伺服器就是服務端將客戶端的資料傳送回去。我實現的回射伺服器返回增加了時間。服務端 可以很容易看懂 cpp view plain copy include include include include include include include include include define ...

TCP 回射伺服器

本例為多程序的 tcp 回射程式 服務端 include intmain int argc,char ar close connfd 父程序斷開連線 void str echo int sockfd 套接字 sockaddr in cliaddr,servaddr 網際套接字位址結構,包含協議族 i...