⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.c

📁 在Linux环境下采用socket机构实现通信。 用户可以自己建立文档来测试。内附说明。
💻 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 + -