第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

作業(yè)社區(qū)

探索學(xué)習(xí)新天地,共享知識(shí)資源!

0 提交作業(yè)
0個(gè) 布置作業(yè)
0 滿分作業(yè)
得分 100
學(xué)習(xí)任務(wù)

胡漢三66 的學(xué)生作業(yè):

tcpsocket.h #ifndef __TCP_SOCKET_H_ #define __TCP_SOCKET_H_ #include #include #include #include #include #include #include #include // 用于創(chuàng)建 tcp server socket extern int create_tcp_server_socket(const char *ip,unsigned short port); // 用于創(chuàng)建 tcp client socket extern int create_tcp_client_socket(const char *ser_ip,unsigned short svr_port); // 用于(服務(wù)器)與客戶端建立連接 extern int wait_for_connect(int sockfd,struct sockaddr_in *cli_addr); // 顯示連接客戶端的地址信息 extern void show_tcp_network_address(struct sockaddr_in *sockaddr); // 發(fā)送數(shù)據(jù) extern ssize_t tcp_send_pack(int sockfd,const void *buf,size_t len); // 接收數(shù)據(jù) extern ssize_t tcp_recv_pack(int sockfd,void *buf,size_t len); #endif tcpsocket.c #include "tcpsocket.h" #include "debug.h" #define BACKLOG 10 // 監(jiān)聽隊(duì)列最大值 // 用于創(chuàng)建 tcp server socket int create_tcp_server_socket(const char *ip,unsigned short port) { int sfd,ret; struct sockaddr_in svr_addr; socklen_t len = sizeof(struct sockaddr_in); // 1.創(chuàng)建套接字 sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1){ DEBUG_INFO("[ERROR] Failed to socket : %s\n",strerror(errno)); return -1; } bzero(&svr_addr,sizeof(struct sockaddr_in)); // 指針指向空間初始化(清零) svr_addr.sin_family = AF_INET; // 協(xié)議族 svr_addr.sin_port = htons(port); // 端口 svr_addr.sin_addr.s_addr = inet_addr(ip); // IP // 2.綁定ip地址與端口號(hào) ret = bind(sfd,(const struct sockaddr *)&svr_addr,sizeof(struct sockaddr_in)); if(ret == -1){ DEBUG_INFO("[ERROR] Failed to bind : %s\n",strerror(errno)); return -1; } // 3.建立監(jiān)聽隊(duì)列 ret = listen(sfd,BACKLOG); if(ret == -1){ DEBUG_INFO("[ERROR] Failed to listen : %s\n",strerror(errno)); return -1; } return sfd; } // 用于創(chuàng)建 tcp client socket int create_tcp_client_socket(const char *svr_ip,unsigned short svr_port) { int sfd,ret; struct sockaddr_in svr_addr; // 1.創(chuàng)建套接字 sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1){ DEBUG_INFO("[ERROR] Failed to socket : %s\n",strerror(errno)); return -1; } bzero(&svr_addr,sizeof(struct sockaddr_in)); // 指針指向空間初始化(清零) svr_addr.sin_family = AF_INET; // 協(xié)議族 svr_addr.sin_port = htons(svr_port); // 端口 svr_addr.sin_addr.s_addr = inet_addr(svr_ip); // IP ret = connect(sfd,(const struct sockaddr *)&svr_addr,sizeof(struct sockaddr_in)); // 客戶端 連接 服務(wù)器 if(ret == -1){ DEBUG_INFO("[ERROR] Failed to connect : %s\n",strerror(errno)); return -1; } return sfd; } // 用于(服務(wù)器)與客戶端建立連接 int wait_for_connect(int sockfd,struct sockaddr_in *cli_addr) { int cfd; socklen_t len = sizeof(struct sockaddr_in); cfd = accept(sockfd,(struct sockaddr *)cli_addr,&len); if(cfd == -1){ DEBUG_INFO("[ERROR] Failed to accept : %s\n",strerror(errno)); return -1; } return cfd; } // 顯示連接客戶端的地址信息 void show_tcp_network_address(struct sockaddr_in *sockaddr) { printf("ip : %s\n",inet_ntoa(sockaddr->sin_addr)); printf("port : %d\n",ntohs(sockaddr->sin_port)); } // 發(fā)送數(shù)據(jù) ssize_t tcp_send_pack(int sockfd,const void *buf,size_t len) { return send(sockfd,buf,len,0); } // 接收數(shù)據(jù) ssize_t tcp_recv_pack(int sockfd,void *buf,size_t len) { return recv(sockfd,buf,len,0); }

得分 100
學(xué)習(xí)任務(wù)

胡漢三66 的學(xué)生作業(yè):

tcpsocket.h #ifndef __TCP_SOCKET_H_ #define __TCP_SOCKET_H_ #include #include #include #include #include #include #include #include // 用于創(chuàng)建 tcp server socket extern int create_tcp_server_socket(const char *ip,unsigned short port); // 用于創(chuàng)建 tcp client socket extern int create_tcp_client_socket(const char *ser_ip,unsigned short svr_port); // 用于(服務(wù)器)與客戶端建立連接 extern int wait_for_connect(int sockfd,struct sockaddr_in *cli_addr); #endif tcpsocket.c #include "tcpsocket.h" #include "debug.h" #define BACKLOG 10 // 監(jiān)聽隊(duì)列最大值 // 用于創(chuàng)建 tcp server socket int create_tcp_server_socket(const char *ip,unsigned short port) { int sfd,ret; struct sockaddr_in svr_addr; socklen_t len = sizeof(struct sockaddr_in); // 1.創(chuàng)建套接字 sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1){ DEBUG_INFO("[ERROR] Failed to socket : %s\n",strerror(errno)); return -1; } bzero(&svr_addr,sizeof(struct sockaddr_in)); // 指針指向空間初始化(清零) svr_addr.sin_family = AF_INET; // 協(xié)議族 svr_addr.sin_port = htons(port); // 端口 svr_addr.sin_addr.s_addr = inet_addr(ip); // IP // 2.綁定ip地址與端口號(hào) ret = bind(sfd,(const struct sockaddr *)&svr_addr,sizeof(struct sockaddr_in)); if(ret == -1){ DEBUG_INFO("[ERROR] Failed to bind : %s\n",strerror(errno)); return -1; } // 3.建立監(jiān)聽隊(duì)列 ret = listen(sfd,BACKLOG); if(ret == -1){ DEBUG_INFO("[ERROR] Failed to listen : %s\n",strerror(errno)); return -1; } return sfd; } // 用于創(chuàng)建 tcp client socket int create_tcp_client_socket(const char *svr_ip,unsigned short svr_port) { int sfd,ret; struct sockaddr_in svr_addr; // 1.創(chuàng)建套接字 sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1){ DEBUG_INFO("[ERROR] Failed to socket : %s\n",strerror(errno)); return -1; } bzero(&svr_addr,sizeof(struct sockaddr_in)); // 指針指向空間初始化(清零) svr_addr.sin_family = AF_INET; // 協(xié)議族 svr_addr.sin_port = htons(svr_port); // 端口 svr_addr.sin_addr.s_addr = inet_addr(svr_ip); // IP ret = connect(sfd,(const struct sockaddr *)&svr_addr,sizeof(struct sockaddr_in)); // 客戶端 連接 服務(wù)器 if(ret == -1){ DEBUG_INFO("[ERROR] Failed to connect : %s\n",strerror(errno)); return -1; } return sfd; } // 用于(服務(wù)器)與客戶端建立連接 int wait_for_connect(int sockfd,struct sockaddr_in *cli_addr) { int cfd; socklen_t len = sizeof(struct sockaddr_in); cfd = accept(sockfd,(struct sockaddr *)cli_addr,&len); if(cfd == -1){ DEBUG_INFO("[ERROR] Failed to accept : %s\n",strerror(errno)); return -1; } return cfd; }

得分 100
學(xué)習(xí)任務(wù)

胡漢三66 的學(xué)生作業(yè):

debug.h #ifndef _DEBUG_H_ #define _DEBUG_H_ /* __FILE__ : 輸出文件名 __FUNCTION__ : 輸出函數(shù)名 __LINE__ : 輸出行號(hào) */ #define DEBUG_INFO(args...) do{ \ char b__[1024];\ sprintf(b__,args);\ fprintf(stderr,"[%s,%s,%d] : %s",__FILE__,__FUNCTION__,__LINE__,b__); \ }while(0) #endif tcpsocket.h #ifndef __TCP_SOCKET_H_ #define __TCP_SOCKET_H_ #include #include #include #include #include #include #include #include // 用于創(chuàng)建 tcp server socket extern int create_tcp_server_socket(const char *ip,unsigned short port); #endif tcpsocket.c #include "tcpsocket.h" #include "debug.h" #define BACKLOG 10 // 監(jiān)聽隊(duì)列最大值 // 用于創(chuàng)建 tcp server socket int create_tcp_server_socket(const char *ip,unsigned short port) { int sfd,ret; struct sockaddr_in svr_addr; socklen_t len = sizeof(struct sockaddr_in); // 1.創(chuàng)建套接字 sfd = socket(AF_INET,SOCK_STREAM,0); if(sfd == -1){ DEBUG_INFO("[ERROR] Failed to socket : %s\n",strerror(errno)); return -1; } bzero(&svr_addr,sizeof(struct sockaddr_in)); // 指針指向空間初始化(清零) svr_addr.sin_family = AF_INET; // 協(xié)議族 svr_addr.sin_port = htons(port); // 端口 svr_addr.sin_addr.s_addr = inet_addr(ip); // IP // 2.綁定ip地址與端口號(hào) ret = bind(sfd,(const struct sockaddr *)&svr_addr,sizeof(struct sockaddr_in)); if(ret == -1){ DEBUG_INFO("[ERROR] Failed to bind : %s\n",strerror(errno)); return -1; } // 3.建立監(jiān)聽隊(duì)列 ret = listen(sfd,BACKLOG); if(ret == -1){ DEBUG_INFO("[ERROR] Failed to listen : %s\n",strerror(errno)); return -1; } return sfd; }

微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)