Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct arg_struct {
- char name[256];
- int connfd;
- }
- void *file_receiver(void *);
- int main() {
- // ....
- struct sockaddr_in client;
- int c;
- pthread_t thread_id;
- struct arg_struct argumen;
- while(1)
- {
- connfd = accept(listenfd, (struct sockaddr*)&client, (socklen_t*)&c);
- bytesReceived = read(connfd, recvBuff, 256);
- memset(&argumen, 0, sizeof(argumen));
- strncpy(argumen.name, recvBuff, 255);
- argumen.connfd = connfd
- if (pthread_create(&thread_id, NULL, file_receiver, (void*) &argumen) < 0)
- {
- perror("could not create thread");
- return 1;
- }
- }
- // ....
- }
- void *file_receiver(void * arg)
- {
- char buffer[256];
- int n;
- arg_struct argumen = *((arg_struct*)arg);
- FILE *fp = fopen(argumen.name, "rw");
- if (NULL == fp)
- {
- printf("Error opening file");
- return;
- }
- while ((n = read(argumen.connfd, buffer, sizeof(buffer)-1)) > 0)
- {
- fwrite(buffer, 1, buffer, fp);
- }
- if (n < 0)
- printf("\nRead error\n");
- fclose(fp);
- close(argumen.connfd);
- sleep(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement