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

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

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

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

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

SamstagBaron 的學(xué)生作業(yè):

#include"file_handle.h" #include"debug.h" #include #include int recv_protocol_head(int cfd,file_protocol_t* head){ ssize_t res; ssize_t received = 0; char*buffer = (char*)head; while(1){ res = recvTcp(cfd,buffer+received,sizeof(file_protocol_t)-received); if(res==-1){ DEBUF_INFO("[ERROR]: Received Failed"); return -1; } else if(res==0){ DEBUF_INFO("[ERROR]: Client poweroff, Received Failed"); return -1; }else{ received+=res; } if(received==sizeof(file_protocol_t)){ break; } } return 0; } int getFile(int cfd,const char*filename,size_t filesize){ char buffer[100]={0}; int fd = open(filename,O_WRONLY|O_CREAT|O_TRUNC,0644); if(fd==-1){ DEBUF_INFO("[ERROR]: Open File %s %s",filename,strerror(errno)); return -1; } ssize_t rbytes = 0,wbytes = 0,received = 0; while(1){ rbytes = recvTcp(cfd,buffer,100); if(rbytes==-1){ DEBUF_INFO("[ERROR]: Received Failed"); close(fd); return -1; } else if(rbytes==0){ DEBUF_INFO("[ERROR]: Client poweroff, Received Failed"); close(fd); return -1; }else{ received+=rbytes; wbytes = write(fd,buffer,rbytes); if(wbytes!=rbytes){ DEBUF_INFO("[ERROR]: Write File %s %s",filename,strerror(errno)); close(fd); return -1; } } if(received==filesize){ close(fd); return 0; } } return 0; } int RecvFileFromClient(int cfd){ file_protocol_t head; int res = recv_protocol_head(cfd,&head); int received = getFile(cfd,head.filename,head.file_size); return received; } int send_protocol_head(const char* filename,int sockfd){ file_protocol_t head; strcpy(head.filename,filename); int fd = open(filename,O_RDONLY); if(fd==-1){ DEBUF_INFO("[ERROR]: Open File %s %s",filename,strerror(errno)); return -1; } head.file_size = lseek(fd,0,SEEK_END); close(fd); int res = sendTcp(sockfd,(const void* )&head,sizeof(head)); return res==sizeof(head)?0:-1; } int UpLoadFileFromClient(int cfd,const char *filename){ int res = send_protocol_head(filename,cfd); if(res==-1){ return -1; } char buffer[1024] = {0}; int fd = open(filename,O_RDONLY); if(fd==-1){ DEBUF_INFO("[ERROR]: Open File %s %s",filename,strerror(errno)); return -1; } ssize_t rbytes = 0,sbytes = 0; while(1){ rbytes = read(fd,buffer,sizeof(buffer)); if(rbytes==0){ break; }else if(rbytes

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

SamstagBaron 的學(xué)生作業(yè):

#include"file_handle.h" #include"debug.h" #include #include int recv_protocol_head(int cfd,file_protocol_t* head){ ssize_t res; ssize_t received = 0; char*buffer = (char*)head; while(1){ res = recvTcp(cfd,buffer+received,sizeof(file_protocol_t)-received); if(res==-1){ DEBUF_INFO("[ERROR]: Received Failed"); return -1; } else if(res==0){ DEBUF_INFO("[ERROR]: Client poweroff, Received Failed"); return -1; }else{ received+=res; } if(received==sizeof(file_protocol_t)){ break; } } return 0; } int getFile(int cfd,const char*filename,size_t filesize){ char buffer[100]={0}; int fd = open(filename,O_WRONLY|O_CREAT|O_TRUNC,0644); if(fd==-1){ DEBUF_INFO("[ERROR]: Open File %s %s",filename,strerror(errno)); return -1; } ssize_t rbytes = 0,wbytes = 0,received = 0; while(1){ rbytes = recvTcp(cfd,buffer,100); if(rbytes==-1){ DEBUF_INFO("[ERROR]: Received Failed"); close(fd); return -1; } else if(rbytes==0){ DEBUF_INFO("[ERROR]: Client poweroff, Received Failed"); close(fd); return -1; }else{ received+=rbytes; wbytes = write(fd,buffer,rbytes); if(wbytes==-1){ DEBUF_INFO("[ERROR]: Write File %s %s",filename,strerror(errno)); close(fd); return -1; } } if(received==filesize){ close(fd); return 0; } } return 0; } int RecvFileFromClient(int cfd){ file_protocol_t head; int res = recv_protocol_head(cfd,&head); int received = getFile(cfd,head.filename,head.file_size); return received; } int send_protocol_head(const char* filename,int sockfd){ file_protocol_t head; strcpy(head.filename,filename); int fd = open(filename,O_RDONLY); if(fd==-1){ DEBUF_INFO("[ERROR]: Open File %s %s",filename,strerror(errno)); return -1; } head.file_size = lseek(fd,0,SEEK_END); close(fd); int res = sendTcp(sockfd,(const void* )&head,sizeof(head)); return res==sizeof(head)?0:-1; }

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

SamstagBaron 的學(xué)生作業(yè):

#include"file_handle.h" #include"debug.h" #include #include int recv_protocol_head(int cfd,file_protocol_t* head){ ssize_t res; ssize_t received = 0; char*buffer = (char*)head; while(1){ res = recvTcp(cfd,buffer+received,sizeof(file_protocol_t)-received); if(res==-1){ DEBUF_INFO("[ERROR]: Received Failed"); return -1; } else if(res==0){ DEBUF_INFO("[ERROR]: Client poweroff, Received Failed"); return -1; }else{ received+=res; } if(received==sizeof(file_protocol_t)){ break; } } return 0; } int getFile(int cfd,const char*filename,size_t filesize){ char buffer[100]={0}; int fd = open(filename,O_WRONLY|O_CREAT|O_TRUNC,0644); if(fd==-1){ DEBUF_INFO("[ERROR]: Open File %s %s",filename,strerror(errno)); } ssize_t rbytes = 0,wbytes = 0,received = 0; while(1){ rbytes = recvTcp(cfd,buffer,100); if(rbytes==-1){ DEBUF_INFO("[ERROR]: Received Failed"); close(fd); return -1; } else if(rbytes==0){ DEBUF_INFO("[ERROR]: Client poweroff, Received Failed"); close(fd); return -1; }else{ received+=rbytes; wbytes = write(fd,buffer,rbytes); if(wbytes==-1){ DEBUF_INFO("[ERROR]: Write File %s %s",filename,strerror(errno)); close(fd); return -1; } } if(received==filesize){ close(fd); return 0; } } return 0; } int RecvFileFromClient(int cfd){ file_protocol_t head; int res = recv_protocol_head(cfd,&head); int received = getFile(cfd,head.filename,head.file_size); return received; }

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

SamstagBaron 的學(xué)生作業(yè):

tcp c file #include #include #include #include"tcptool.h" const int BLOCKSOCK = 100; int createTcpServer(const char* ip,short port){ int sockfd; ssize_t rbytes = 0,sbytes = 0; char buffer[1024] = {0}; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(ip); int res = bind(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for bind"); return -1; } res = listen(sockfd,BLOCKSOCK); if(res==-1){ perror("error for listen"); return -1; } return sockfd; } int connectToServer(const char* ip,short port){ int sockfd; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(ip); int res = connect(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for connet"); return -1; } return sockfd; } int listenToClient(int sockfd, struct sockaddr_in* addr){ int cfd; socklen_t len = sizeof(struct sockaddr); cfd = accept(sockfd,(struct sockaddr*) addr,&len); if(cfd==-1){ perror("error for accept"); return -1; } return cfd; } void show_accepted_client(struct sockaddr_in* addr){ printf("Ip: %s \n",inet_ntoa(addr->sin_addr)); printf("Port: %d \n",ntohs(addr->sin_port)); } ssize_t sendTcp(int sockfd,const void *buf,size_t len){ return send(sockfd,buf,len,0); } ssize_t recvTcp(int sockfd, void *buf,size_t len ){ return recv(sockfd,buf,len,0); } tcp makefile .PHONY: all clean SRC=$(wildcard *.c) OBJ=$(patsubst %.c,%.o,$(SRC)) all:$(OBJ) $(OBJ):%.o:%.c @$(CC) $(C_FLAG) $(INCLUDE_DIR) -c $^ -o $(OBJ_DIR)/$@ server file #include"tcptool.h" #include"debug.h" #include #include"stdlib.h" int main(int argc,char *argv[]){ if(argc!=3){ fprintf(stderr,"usage: \n",argv[0]); } int sockfd,sockcfd; sockfd = createTcpServer(argv[1],atoi(argv[2])); if(sockfd==-1){ DEBUF_INFO("create Tcp server Error"); } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); sockcfd = listenToClient(sockfd,&addr); if(sockcfd==-1){ exit(EXIT_FAILURE); } show_accepted_client(&addr); close(sockcfd); close(sockfd); return 0; } server makefile .PHONY: all clean SRC=$(wildcard *.c) OBJ=$(patsubst %.c,%.o,$(SRC)) all:$(OBJ) server $(OBJ):%.o:%.c @$(CC) $(C_FLAG) $(INCLUDE_DIR) -c $^ -o $@ server:$(wildcard $(OBJ_DIR)/*.o) $(OBJ) @$(CC) $(C_FLAG) $(INCLUDE_DIR) $^ -o $(BIN_DIR)/$(SERVER) clean: @rm *.o client file #include"tcptool.h" #include"debug.h" #include #include"stdlib.h" int main(int argc,char *argv[]){ if(argc!=3){ fprintf(stderr,"usage: \n",argv[0]); } int sockfd; sockfd = connectToServer(argv[1],atoi(argv[2])); if(sockfd==-1){ DEBUF_INFO("create Tcp server Error"); } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); close(sockfd); return 0; } client makefile .PHONY: all clean SRC=$(wildcard *.c) OBJ=$(patsubst %.c,%.o,$(SRC)) all:$(OBJ) server $(OBJ):%.o:%.c @$(CC) $(C_FLAG) $(INCLUDE_DIR) -c $^ -o $@ server:$(wildcard $(OBJ_DIR)/*.o) $(OBJ) @$(CC) $(C_FLAG) $(INCLUDE_DIR) $^ -o $(BIN_DIR)/$(CLIENT) clean: rm *.o

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

SamstagBaron 的學(xué)生作業(yè):

#include #include #include #include #include #include #include #include"tcptool.h" const int BLOCKSOCK = 100; int createTcpServer(const char* ip,short port){ int sockfd; ssize_t rbytes = 0,sbytes = 0; char buffer[1024] = {0}; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(ip); int res = bind(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for bind"); return -1; } res = listen(sockfd,BLOCKSOCK); if(res==-1){ perror("error for listen"); return -1; } return sockfd; } int connectToServer(const char* ip,short port){ int sockfd; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(ip); int res = connect(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for connet"); return -1; } return sockfd; } int listenToClient(int sockfd, struct sockaddr_in* addr){ int cfd; socklen_t len = sizeof(struct sockaddr); cfd = accept(sockfd,(struct sockaddr*) addr,&len); if(cfd==-1){ perror("error for accept"); return -1; } return cfd; } void show_accepted_client(struct sockaddr_in* addr){ printf("Ip: %s \n",inet_ntoa(addr->sin_addr)); printf("Port: %d \n",ntohs(addr->sin_port)); } ssize_t sendTcp(int sockfd,const void *buf,size_t len){ return send(sockfd,buf,len,0); } ssize_t recvTcp(int sockfd, void *buf,size_t len ){ return recv(sockfd,buf,len,0); }

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

SamstagBaron 的學(xué)生作業(yè):

#include #include #include #include #include #include #include #include"tcptool.h" const int BLOCKSOCK = 100; int createTcpServer(const char* ip,short port){ int sockfd; ssize_t rbytes = 0,sbytes = 0; char buffer[1024] = {0}; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(ip); int res = bind(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for bind"); return -1; } res = listen(sockfd,BLOCKSOCK); if(res==-1){ perror("error for listen"); return -1; } return sockfd; } int connectToServer(const char* ip,short port){ int sockfd; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(ip); int res = connect(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for connet"); return -1; } return sockfd; } int listenToClient(int sockfd, struct sockaddr_in* addr){ int cfd; socklen_t len = sizeof(struct sockaddr); cfd = accept(sockfd,(struct sockaddr*) addr,&len); if(cfd==-1){ perror("error for accept"); return -1; } return cfd; }

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

SamstagBaron 的學(xué)生作業(yè):

#include #include #include #include #include #include #include #include #include #include void* thread_handle(void* arg){ int sockfd = *(int*)arg; char buffer[100] = {0}; ssize_t rbytes = 0; ssize_t sbytes = 0; while(1){ rbytes = recv(sockfd,buffer,sizeof(buffer),0); printf("receive %s",buffer); sbytes = send(sockfd,buffer,rbytes,0); if(strncmp(buffer,"quit",4)==0){ printf("quit client \n"); break; } memset(buffer,0,rbytes); } close(sockfd); } const int BLOCKSOCK = 100; int main(int argc,char* argv[]){ if(argc!=3){ perror("input invalid"); return -1; } int sockfd; ssize_t rbytes = 0,sbytes = 0; char buffer[1024] = {0}; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(atoi(argv[2])); addr.sin_addr.s_addr = inet_addr(argv[1]); int res = bind(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for bind"); return -1; } res = listen(sockfd,BLOCKSOCK); if(res==-1){ perror("error for listen"); return -1; } struct sockaddr_in client; bzero(&client,sizeof(client)); socklen_t len = sizeof(client); pthread_t tid; while(1){ int sockfdc = accept(sockfd,(struct sockaddr*)&client,&len); if(sockfdc==-1){ perror("error for accept"); return -1; } pthread_create(&tid,NULL,thread_handle,(void*)&sockfdc); pthread_detach(tid); } close(sockfd); return 0; } 【圖片】【圖片】

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

SamstagBaron 的學(xué)生作業(yè):

client #include #include #include #include #include #include #include #include int main(int argc,char* argv[]){ int sockfd; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(atoi(argv[2])); addr.sin_addr.s_addr = inet_addr(argv[1]); int res = connect(sockfd,(const struct sockaddr* )&addr,sizeof(addr)); if(res==-1){ perror("error for connect"); return -1; } ssize_t rbytes=0,sbytes = 0; char buffer[] = {"hello server"}; char* pbuffer = (char*)malloc(strlen(buffer)+5); int length = strlen(buffer)+1; memcpy(pbuffer,&length,4); memcpy(pbuffer+4,buffer,strlen(buffer)+1); printf("%d %s\n",*(int*)pbuffer,pbuffer+4); while(1){ sbytes = send(sockfd,pbuffer,length+4,0); } free(pbuffer); close(sockfd); return 0; } server #include #include #include #include #include #include #include #include const int BLOCKSOCK = 100; int main(int argc,char* argv[]){ if(argc!=3){ perror("input invalid"); return -1; } int sockfd; ssize_t rbytes = 0,sbytes = 0; char buffer[1024] = {0}; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1){ perror("error for socket"); return -1; } struct sockaddr_in addr; bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(atoi(argv[2])); addr.sin_addr.s_addr = inet_addr(argv[1]); int res = bind(sockfd,(const struct sockaddr*)&addr,sizeof(addr)); if(res==-1){ perror("error for bind"); return -1; } res = listen(sockfd,BLOCKSOCK); if(res==-1){ perror("error for listen"); return -1; } struct sockaddr_in client; bzero(&client,sizeof(client)); socklen_t len = sizeof(client); int sockfdc = accept(sockfd,(struct sockaddr*)&client,&len); if(sockfdc==-1){ perror("error for accept"); return -1; } while(1){ int length = 0; rbytes = recv(sockfdc,&length,4,0); int received = 0; while(received!=length){ rbytes = recv(sockfdc,buffer+received,length-received,0); received+=rbytes; } printf("receive %s \n",buffer); sleep(1); } close(sockfdc); close(sockfd); return 0; } 【圖片】

微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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