#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <netdb.h>
#include <netinet/in.h>
#define PORT 4321
#define DIR_SIZE 20
#define BUFFER_SIZE 1024*10
int main(int argc, char *argv[])
{
int sockfd, sendbytes,sin_size=1;
char buf[BUFFER_SIZE];
struct hostent *host;
struct sockaddr_in serv_addr;
char dir[DIR_SIZE];
int jpg_file;
struct stat *file_buf;
file_buf= (struct stat *)malloc(sizeof(struct stat));
if(argc < 3)
{
fprintf(stderr,"USAGE: ./client Hostname(or ip address) Text name\n");
exit(1);
}
/*地址解析函数*/
if ((host = gethostbyname(argv[1])) == NULL)
{
perror("gethostbyname");
exit(1);
}
memset(buf, 0, sizeof(buf));
// sprintf(buf, "%s", argv[2]);
strcpy(dir, "./");
strcat(dir,argv[2]);
printf("stat\n");
stat(dir,file_buf);
printf("open\n");
jpg_file=open(dir,O_RDONLY);
read(jpg_file,buf,file_buf->st_size);
close(jpg_file);
printf("open-close\n");
/*创建socket*/
if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket");
exit(1);
}
/*设置sockaddr_in 结构体中相关参数*/
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(PORT);
serv_addr.sin_addr = *((struct in_addr *)host->h_addr);
bzero(&(serv_addr.sin_zero), 8);
/*调用connect函数主动发起对服务器端的连接*/
if(connect(sockfd,(struct sockaddr *)&serv_addr, sizeof(struct sockaddr))== -1)
{
perror("connect");
exit(1);
}
/*发送消息给
* 服务器端*/
if ((sendbytes = send(sockfd, &(file_buf->st_size), sizeof(int), 0)) == -1)
{
perror("send");
exit(1);
}
if ((sendbytes = send(sockfd, buf, file_buf->st_size, 0)) == -1)
{
perror("send");
exit(1);
}
sleep(3);
//clent addr
//sockfd=accept(sockfd,(struct sockaddr *)&serv_addr,&sin_size);
close(sockfd);
exit(0);
}
jpeg_send_rec.rar_rec
版权申诉
16 浏览量
2022-09-20
20:09:26
上传
评论
收藏 2KB RAR 举报
weixin_42651887
- 粉丝: 81
- 资源: 1万+
最新资源
- 织梦cms站长导航网站源码.zip
- 基于SSM+MySQL的网络投票调查问卷系统源码+数据库(java期末大作业).zip
- 基于jsp+servlet的宠物商城网站系统源码+数据库(java期末大作业).zip
- 基于Python+Tensorflow实现声纹识别+源代码+文档说明.zip
- java-leetcode题解之第112题路径总和.zip
- java-leetcode题解之第111题二叉树的最小深度.zip
- java-leetcode题解之第110题平衡二叉树.zip
- java-leetcode题解之第109题有序链表转换二叉搜索树.zip
- java-leetcode题解之第108题将有序数组转换为二叉搜索树.zip
- java-leetcode题解之第107题二叉树的层序遍历II.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈