Permission denied with sendto in Ubuntu


 
Thread Tools Search this Thread
Operating Systems Linux Ubuntu Permission denied with sendto in Ubuntu
# 1  
Old 06-12-2008
Permission denied with sendto in Ubuntu

I hope to post in the right place, otherwise I apologize for this
I wrote a UDP sender and a UDP receiver, my goal is to transmit a file from th sender to the receiver. I'm using Ubuntu 8.04
Compiling goes well but when I execute the sender, its "sendto" gives me the error "Permission denied" . What's wrong? I ran the same code on fedora 9 with no problem.
Here's the code, thank you in advance (I 've reported the receive too for the sake of completeness)

Code:
sender..c

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define PORT 5500
#define BUFFSIZE 100
#define MIN(_x_,_y_)(((_x_)<(_y_) )? (_x_)<img src="images/smilies/frown.gif" border="0" alt="">_y_))
int main (int argc, char* argv){


  FILE* fin;
  int sd; /*socket descriptor*/
  struct sockaddr_in dest;
  char buf[BUFFSIZE];  /*buffer for socket*/
  unsigned long length, file_size, encoded_file_size, chunk_size;

  memset((char *)&dest, 0, sizeof(dest));
  dest.sin_family = PF_INET;
  dest.sin_port = htons(PORT);
  dest.sin_addr.s_addr = inet_addr("10.0.0.201"); /*destination's address*/



   
  if ((sd = socket(PF_INET,SOCK_DGRAM,0))<0) {
  perror("socket creation");
  }
  fin = fopen("/home/dileo/prova.txt","rb");
  if (fin != NULL){
      fseek(fin,0, SEEK_END);
      file_size = ftell(fin);
      fseek(fin,0, SEEK_SET);
      encoded_file_size = htonl(file_size); /*send dim file*/
       if(sendto(sd, &encoded_file_size, sizeof(encoded_file_size), 0, (struct sockaddr*)&dest, sizeof(dest))<0){ <-here I've                   problem 
       perror("send to error");
       }
       for (length=0; length < file_size; length += chunk_size ){
           chunk_size = MIN(BUFFSIZE, file_size-length);
           fread(buf, chunk_size,1, fin);  /*Check*/
           if (chunk_size != sendto(sd, buf, chunk_size,0,(struct sockaddr*)&dest, sizeof(dest))) <--here Ive problem
              perror("Unable to send data");
       }
    fclose(fin);
    }else{
    printf("Unable to open file");
    }
close(sd);   
}


Code:
RECEIVER.c

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define BUFSIZE 5000
#define DEBUG 1
#define PORT 5500 /*receiver's port*/
#define MIN(_x_,_y_)(((_x_)<(_y_) )? (_x_)<img src="images/smilies/frown.gif" border="0" alt="">_y_))

int main (int argc, char** argv){

  int sd, sfamily, stype, sprotocol;
  struct sockaddr_in receiver, their_addr;
  socklen_t their_addr_len;
  unsigned long file_size;

    memset((char *)&receiver, 0, sizeof(receiver)); /*clean */     
    receiver.sin_family = PF_INET;
    receiver.sin_port = htons(PORT);
    receiver.sin_addr.s_addr = INADDR_ANY;
    
    if ((sd = socket(PF_INET, SOCK_DGRAM, 0))<0)
       perror("socket creation error");
    if (bind(sd, (struct sockaddr*)& receiver, sizeof(receiver))){
    perror("bind error");
    exit(1);
    }

    if (recvfrom(sd,&file_size, sizeof(unsigned long),0, (struct sockaddr*)&their_addr, their_addr_len)<0){
         perror("receive error");
    }
    printf("received packet from %s\n ", inet_ntoa(their_addr.sin_addr));
    printf("packet contains \"%i\"\n",ntohl(file_size));        
    
   FILE *fout = fopen("/home/pippo.txt","wb");
   char buffer[BUFSIZE];
   unsigned long length, chunk_size;
       for (length = 0; length < file_size; length += chunk_size){
#ifdef DEBUG        
        printf("length %i\n", length);
#endif        
    chunk_size = recvfrom (sd, &buffer, MIN(BUFSIZE, file_size-length),0,NULL, NULL);
#ifdef DEBUG
      printf("chunk_size %i\n", chunk_size);
#endif     
    if (!chunk_size){
        printf("connection unexpdeately terminated");
        close(sd);
        }
        
    fwrite(buffer, chunk_size,1, fout); /*<--questa fwrite č reposnsabile segment fault */
        }        
    
fclose(fout);   
close(sd);

return 0;

}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Ubuntu

Permission denied

Trying to get date into the txt file. It says Permission denied. echo $(date +%I:%M:%S_%D) >> /tmp/systemd_suspend_test_err.txt exec 2>> /tmp/systemd_suspend_test_err.txt if ; then # Do the thing you want before suspend here echo "we are suspending $(date +%I:%M:%S_%D)." elif ;... (5 Replies)
Discussion started by: drew77
5 Replies

2. UNIX for Dummies Questions & Answers

Permission denied

when i run echo "User” > /dev/tty5 why do i get permission denied? :confused: (2 Replies)
Discussion started by: chinababy
2 Replies

3. Linux

Permission denied

I am using korn shell When I type in Telnet on cmd line, I get message "cannot execute" How can I get permission to execute command ? In which dir is telnet located ? I looked in /usr/bin dir. but its not there Thanks (1 Reply)
Discussion started by: paramshamnani
1 Replies

4. Shell Programming and Scripting

Permission denied

I created a user so that when he logs in he will be directed to a menu /etc/passwd user1:x:115:1:Support -SysAd:/export/home/user1:/export/home/suppotrmenu/script.sh However when I logged in remotely from another server by ssh user1@1.1.1.1 , it saysexport/home/suppotrmenu/script.sh:... (4 Replies)
Discussion started by: lhareigh890
4 Replies

5. Red Hat

Permission denied

Hi guys im new to this db i have a small prob while installing websphereportal6.1i think i was installed succesfully but the error im getting is while starting server. check this out # ./serverStatus.sh -all Error loading: /usr/wps61/AppServer/java/jre/bin/classic/libjvm.so: cannot... (1 Reply)
Discussion started by: varma917989
1 Replies

6. UNIX for Dummies Questions & Answers

Permission denied

I would like to copy data from local mechine to cluster. Basically, I typed scp -r DVD/ acount@cluster:/ it shows Permission denied. Could anyone please give me a clue to write permission on cluster, please? The poperty of where on cluster I'd like to put is drwxr-xr-x Any idea would... (1 Reply)
Discussion started by: su_in99
1 Replies

7. UNIX for Dummies Questions & Answers

Why do I keep getting .:Permission denied?

I'll start off by saying that I know very little about Unix - however, I do know that I have a .profile file in my home directory, and that I should be able to invoke it by typing . profile. However, when I do this for ANY .filename, I get ".: Permission denied". I'm pretty sure that there is... (12 Replies)
Discussion started by: bbersani
12 Replies

8. UNIX for Advanced & Expert Users

Permission denied

Hi, I can not execute a .env file $ . /Data/oracle/d03/mydbora/8.0.6/MYDB.env -bash: /Data/oracle/d03/mydbora/8.0.6/MYDB.env: Permission denied Even if : -rwxrwxrwx 1 oracle dba 2903 Mar 5 2007 /Data/oracle/d03/mydbora/8.0.6/MYDB.env Please help. Many thanks. (1 Reply)
Discussion started by: big123456
1 Replies

9. UNIX for Dummies Questions & Answers

Permission Denied

I just started computer science at UW Milwaukee. When I access the university Solaris system from PuTTY, I get permission denied when I try to access the file I wrote. Now I really have no idea what I'm doing, I just don't understand why I get permission denied in my won directory. Thank You ... (0 Replies)
Discussion started by: howeezy
0 Replies

10. UNIX for Dummies Questions & Answers

./ Permission Denied.

Could someone tell me why I am getting a permission denied message when I attempt to run this on an out file? Thanks! (8 Replies)
Discussion started by: trouscaillon
8 Replies
Login or Register to Ask a Question