test
This commit is contained in:
parent
3fdef0aa3c
commit
0f15d510ce
|
@ -3,3 +3,6 @@ server
|
|||
.DS_Store
|
||||
package.jpg
|
||||
assets
|
||||
package.mp4
|
||||
avServer_test
|
||||
avServer
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <netinet/in.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
|
||||
#define PORT 8080
|
||||
|
||||
|
@ -16,6 +17,7 @@ int main(int argc, char const *argv[])
|
|||
int addrlen = sizeof(address);
|
||||
char buffer[1024];
|
||||
char *overMessage = "over";
|
||||
srand(time(NULL));
|
||||
|
||||
// Creating socket file descriptor
|
||||
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0)
|
||||
|
@ -54,12 +56,16 @@ int main(int argc, char const *argv[])
|
|||
{
|
||||
return -1;
|
||||
}
|
||||
int start = clock();
|
||||
while ((read_avatar = read(avatar_fd, buffer, sizeof(buffer))) > 0)
|
||||
{
|
||||
printf("%d\n", read_avatar);
|
||||
send(new_socket, buffer, sizeof(buffer), 0);
|
||||
}
|
||||
send(new_socket, overMessage, sizeof(overMessage), 0);
|
||||
int stop = clock();
|
||||
|
||||
printf("%f", ((double)stop - start) / CLOCKS_PER_SEC);
|
||||
|
||||
close(server_fd);
|
||||
close(new_socket);
|
||||
|
|
25
server.c
25
server.c
|
@ -7,6 +7,7 @@
|
|||
#include <netdb.h>
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
@ -68,6 +69,14 @@ int main(void)
|
|||
myAddrForClients[0].sin_addr.s_addr = INADDR_ANY;
|
||||
myAddrForClients[1].sin_addr.s_addr = INADDR_ANY;
|
||||
|
||||
pthread_t video_thread;
|
||||
if (pthread_create(&video_thread, NULL, videoHandler, NULL) < 0)
|
||||
{
|
||||
printf("Error");
|
||||
perror('video_thread');
|
||||
return -1;
|
||||
};
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if ((sock[i] = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
|
||||
|
@ -192,12 +201,15 @@ void Error(int err)
|
|||
|
||||
void *videoHandler()
|
||||
{
|
||||
|
||||
printf("video_handler\n");
|
||||
char video_buffer[1024];
|
||||
struct stat *movieInfo;
|
||||
int counter = 0; //Counts users that request video data
|
||||
int VideoSocketTCP;
|
||||
int new_socket;
|
||||
int read_movie;
|
||||
struct sockaddr_in video_address_tcp;
|
||||
int addrlen = sizeof(video_address_tcp);
|
||||
|
||||
if ((VideoSocketTCP = socket(AF_INET, SOCK_STREAM, 0)) < 0)
|
||||
{
|
||||
|
@ -223,11 +235,20 @@ void *videoHandler()
|
|||
while (counter < 2)
|
||||
{
|
||||
if ((new_socket = accept(VideoSocketTCP, (struct sockaddr *)&video_address_tcp,
|
||||
sizeof(video_address_tcp))) < 0)
|
||||
(socklen_t)&addrlen) < 0))
|
||||
{
|
||||
perror("accept");
|
||||
return -1;
|
||||
}
|
||||
|
||||
int movie_open = open("assets/test3.mp4", O_RDONLY);
|
||||
int movie_file_stat = fstat(movie_open, movieInfo);
|
||||
send(new_socket, &movieInfo->st_size, sizeof(movieInfo->st_size), 0);
|
||||
while ((read_movie = read(movie_open, video_buffer, sizeof(video_buffer))) > 0)
|
||||
{
|
||||
send(new_socket, video_buffer, sizeof(video_buffer), 0);
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
|
||||
close(VideoSocketTCP);
|
||||
|
|
Loading…
Reference in New Issue