📄 client.c
字号:
#include "sockcom.h"int initSocket(char *rhost) { int sockfd; struct sockaddr_in server; struct hostent *hp, *gethostbyname(); sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd<0) error("Error opening stream socket."); if ((hp=gethostbyname(rhost))==NULL) error("%s Unknow host.", rhost); server.sin_family = AF_INET; bcopy((char *)hp->h_addr, (char *)&server.sin_addr.s_addr, hp->h_length); server.sin_port=htons(PORT); if(connect(sockfd, (struct sockaddr *)&server, sizeof(server))<0) error("Error connect to remote server." ); return sockfd;}int main(int argc, char *argv[]){ if (argc!=4) { error("Usage: client file1 remotehost file2"); } printf("%s %s %s %s\n", argv[0], argv[1], argv[2], argv[3]); int n; char buf[BUFSIZE]; char *filename = argv[1]; FILEINFO fileinfo; strcpy(fileinfo.fname, argv[3]); int fd = open(filename, O_RDONLY); fileinfo.length = lseek(fd,0L,SEEK_END); printf("Filename: %s, length: %d\n", fileinfo.fname, fileinfo.length); int sockfd=initSocket(argv[2]); if(write(sockfd, &fileinfo, sizeof(fileinfo))<0) error("Error sending metadata."); lseek(fd, 0L, SEEK_SET); while((n=read(fd, buf, BUFSIZE))>0) { write(sockfd, buf, n); } close(fd); printf("EOF: disconnect\n"); close(sockfd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -