91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

LINUX下的一個多線程的服務器和客戶端的網絡傳輸程序,初學者可以作為參考。 LINUX下的一個多線程的服務器和客戶端的網絡傳輸程序,初學者可以作為參考

資源截圖

代碼片段和文件信息

/*?
?Very?simple?file?transferring?client.
?Copyright?(C)?2004-2006?Li?Suke?School?of?Software?and?Microelectronics
?Peking?University
?This??is?free?software;?you?can?redistribute?it?and/or
?modify?it?freely.

?This?software??is?distributed?in?the?hope?that?it?will?be?useful
?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??
*/

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“rw.h“
int?main(int?argc?char?*argv[]){
???int?sockfd;
???int?conn_ret;
???struct?sockaddr_in?servaddr;
???char?cmd_buf[MAX_LEN];
???char?recvbuf[MAX_LEN];
???int?error_flag;
???int?len?=?MAX_LEN;
???int?file_fd;
???int?dot_number;
???int?total_len?=?0;
???if(argc?!=?5){
??????printf(“Usage:?fileclient?
???\n“);
??????return?0;
???}
???if((sockfd?=?socket(AF_INETSOCK_STREAM0))?==?-1){
???????perror(“sock“);
???????exit(1);
???}
???bzero(&servaddrsizeof(servaddr));
???servaddr.sin_family?=?AF_INET;
???servaddr.sin_port?=?htons(atoi(argv[2]));
???inet_pton(AF_INETargv[1]&servaddr.sin_addr);
???conn_ret?=?connect(sockfd(struct?sockaddr?*)&servaddrsizeof(servaddr));
???if(conn_ret?==?-1){
??????perror(“connect“);
???}
???file_fd?=?open(argv[4]O_CREAT?|??O_WRONLY);
???if(file_fd?==?-1){
???????perror(“open“);
???????exit(1);
???}
???len?=?strlen(argv[3])+3;
???snprintf(cmd_buflen“%s\r\n“argv[3]);
???if((error_flag?=?writeall(sockfdcmd_buf&len))==-1){
???????exit(1);
???}
???len?=?MAX_LEN;??
???printf(“\nfile?is?transferring:\n“);
???while?((error_flag?=?readall(sockfdrecvbuf&len))==0){
???????if(len?==?0){
???????????printf(“\nClient?has?received?file!\n“);
???????????break;
???????}?
???????printf(“.“);
???????printf(“read?length?is?%d\n“len);
???????dot_number++;
???????if((dot_number?%?DOT_PERIOD)?==0){
???????????????printf(“\n“);
???????????????dot_number?=?0;
???????}
???????total_len+=len;
???????if(writeall(file_fdrecvbuf&len)?==?-1){
????????????printf(“\nclient?has?some?error?when?receive?the?file!\n“);
????????????break;
???????}?

???????len??=?MAX_LEN;
?
???}
???printf(“\nRecevied?%d?bytes\n“total_len);
???close(file_fd);
???close(sockfd);
???return;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3757??2006-06-16?10:03??pthreadfile\rw.c

?????文件????????288??2006-06-16?10:03??pthreadfile\rw.h

?????文件????????252??2006-06-16?10:03??pthreadfile\Makefile

?????文件???????2415??2006-06-16?10:03??pthreadfile\fileclient.c

?????文件???????2575??2006-06-16?10:03??pthreadfile\fileserver.c

?????目錄??????????0??2006-06-16?10:03??pthreadfile

-----------?---------??----------?-----??----

?????????????????9505????????????????????7


評論

共有 條評論