file_client.c send jpg
************************************/
#include <netinet/in.h> // for sockaddr_in
#include <sys/types.h> // for socket
#include <sys/socket.h> // for socket
#include <stdio.h> // for printf
#include <stdlib.h> // for exit
#include <string.h> // for bzero
#define SERVER_PORT 6666
#define BUFFER_SIZE 1024
#define FLAG 10
#define FILE_NAME_MAX_SIZE 512
#define JPG "./1.JPG"
int main(void)
{
struct sockaddr_in client_addr;
struct sockaddr_in server_addr;
int i;
char buf[BUFFER_SIZE];
char flag[FLAG];
int num=0;
memset(flag,0,FLAG);
memset(buf,0,BUFFER_SIZE);
memset(&client_addr,0,sizeof(client_addr));
client_addr.sin_family = AF_INET;
client_addr.sin_addr.s_addr = inet_addr("192.168.149.128");
client_addr.sin_port = htons(0);
int client_socket = socket(AF_INET,SOCK_STREAM,0);
if( client_socket < 0)
{
printf("Create Socket Failed!\n");
exit(1);
}
printf("#Socket is created!#\n");
printf("#The socket id is :%d#\n",client_socket);
if(bind(client_socket,(struct sockaddr*)&client_addr,sizeof(client_addr)))
{
printf("Client Bind Port Failed!\n");
close(client_socket);
for(i=0;i<3;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
printf("\n");
exit(1);
}
else
{
sleep(1);
printf("#Bind ip success!#\n");
}
memset(&server_addr,0,sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
server_addr.sin_port = htons(SERVER_PORT);
socklen_t server_addr_length = sizeof(server_addr);
if(connect(client_socket,(struct sockaddr*)&server_addr, server_addr_length) < 0)
{
printf("Can Not Connect To!");
for(i=0;i<3;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
printf("\n");
close(client_socket);
exit(1);
}
sleep(1);
printf("#Connect sever success!#\n");
FILE *fp;
fp=fopen(JPG,"rb");
if(NULL == fp)
{
printf("File open error!\n");
close(client_socket);
}
strcpy(flag,"start");
send(client_socket,flag,FLAG,0);
printf("*send start flag*\n");
sleep(1);
recv(client_socket,flag,FLAG,0);
if(strcmp(flag,"ok")!=0)
{
printf("communicate failed ...\n");
for(i=0;i<60;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
printf("\n");
}
printf("*yanzheng success start to send*\n");
rewind(fp);
while(0==feof(fp))
{
fread(buf,BUFFER_SIZE,1,fp);
send(client_socket,buf,BUFFER_SIZE,0);
printf(".%d",num);
num++;
}
printf("\n");
memset(buf,0,BUFFER_SIZE);
strcpy(buf,"end");
send(client_socket,buf,BUFFER_SIZE,0);
printf("*Send the end flag!*\n");
for(i=0;i<10;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
fclose(fp);
close(client_socket);
return 0;
}
。。。。。。。
/*********************************************************
file_server.c accept jpg
*********************************************************/
#include <netinet/in.h> // for sockaddr_in
#include <sys/types.h> // for socket
#include <sys/socket.h> // for socket
#include <stdio.h> // for printf
#include <stdlib.h> // for exit
#include <string.h> // for memset
#define SERVER_PORT 6666 /* port */
#define LENGTH_OF_LISTEN_QUEUE 20
#define BUFFER_SIZE 1024
#define FLAG 10
#define FILE_NAME_MAX_SIZE 512
#define REC_JPG "./rec_1.JPG"
int main(void)
{
int server_socket;
int new_server_socket;
char buffer[BUFFER_SIZE];
char flag[FLAG];
socklen_t length;
int i;
int num=0;
struct sockaddr_in server_addr;//sever socket
struct sockaddr_in client_addr;//communicate with client socket
memset(flag,0,FLAG);
memset(buffer,0, BUFFER_SIZE);
memset(&server_addr,0,sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY); //INADDR_ANY "127.0.0.1"
server_addr.sin_port = htons(SERVER_PORT);
server_socket = socket(PF_INET,SOCK_STREAM,0);//
length = sizeof(client_addr);
if( server_socket < 0)
{
printf("########Create Socket Failed!########\n");
exit(1);
}
printf("#Socket is created!#\n");
printf("#The socket id is :%d#\n",server_socket);
if(bind(server_socket,(struct sockaddr*)&server_addr,sizeof(server_addr))<0)
{
printf("########Server Bind Port : %d Failed!########\n", SERVER_PORT);
exit(1);
}
else
{
sleep(1);
printf("#Bind ip success!#\n");
printf("#The bind port is :%d#\n",SERVER_PORT);
}
if ( listen(server_socket, LENGTH_OF_LISTEN_QUEUE) )
{
printf("########Server Listen Failed!########\n");
exit(1);
}
sleep(1);
printf("#Severs is listening!#\n");
while (1)
{
new_server_socket = accept(server_socket,(struct sockaddr*)&client_addr,&length);
if ( new_server_socket < 0)
{
printf("########Server Accept Failed!########\n");
break;
}
printf("#Client connect success!..accept#\n");
recv(new_server_socket,flag,FLAG,0);
if(strcmp(flag,"start")!=0)
{
printf("communicate failed ...\n");
for(i=0;i<60;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
printf("\n");
}
printf("*recv the start flag from client*\n");
strcpy(flag,"ok");
send(new_server_socket,flag,FLAG,0);
printf("*huifu client*\n");
FILE *fp;
fp=fopen(REC_JPG,"wb+");
if(NULL==fp)
{
printf("file open error!\n");
exit(1);
}
while(1)
{
recv(new_server_socket,buffer,BUFFER_SIZE,0);
if(strcmp(buffer,"end")==0)
{
printf("\n");
printf("*Recive the end flag!*");
for(i=0;i<5;i++)
{
printf(".");
fflush(stdout);
sleep(1);
}
close(new_server_socket);
close(server_socket);
return 0;
}
fwrite(buffer,BUFFER_SIZE,1,fp);
printf(".%d",num);
num++;
fflush(fp);
}
close(new_server_socket);
}
close(server_socket);
return 0;
}
7 个解决方案
#1
自己走起!

#2

#3
猜猜我是谁

#4
你妈逼看着累不累???
#5

#6
为嘛要爆粗我!!!
#7

#1
自己走起!

#2

#3
猜猜我是谁

#4
你妈逼看着累不累???
#5

#6
为嘛要爆粗我!!!
#7
