Exemple #1
0
int main(int argc, char * argv[])
{
    int server_socket;         //socket descriptor
    seq_num = 0;
    //setvbuf(stdin, (char *)NULL, _IOFBF, 0);

    /* check command line arguments  */
    if(argc!= 4)
    {
        printf("usage: %s handle host-name port-number \n", argv[0]);
        exit(1);
    }

    /* set up the socket for TCP transmission  */
    handle = strdup(argv[1]);
    if (strlen(handle) > 256) {
        printf("Handle must be less than 256 characters long\n");
    }

    server_socket = tcp_send_setup(argv[2], argv[3]);

    while (1) {
        tcp_send_recv(server_socket);
    }
        
    close(server_socket);
    return 0;
}
int main(int argc, char * argv[])
{
    int socket_num;         //socket descriptor
    char *send_buf;         //data buffer
    int bufsize= 0;         //data buffer size
    int send_len= 0;        //amount of data to send
    int sent= 0;            //actual amount of data sent

    /* check command line arguments  */
    if(argc!= 3)
    {
        printf("usage: %s host-name port-number \n", argv[0]);
        exit(1);
    }

    /* set up the socket for TCP transmission  */
    socket_num = tcp_send_setup(argv[1], argv[2]);

    /* initialize data buffer for the packet */
    bufsize= 1024;
    send_buf= (char *) malloc(bufsize);

    /* get the data and send it   */
    printf("Enter the data to send: ");
    
    send_len = 0;
    while ((send_buf[send_len] = getchar()) != '\n' && send_len < 80) {
      send_len++;  
    }
	   
    send_buf[send_len] = '\0';
            
    /* now send the data */
    sent =  send(socket_num, send_buf, send_len, 0);
    if(sent < 0)
    {
        perror("send call");
        exit(-1);
    }
    

    printf("String sent: %s \n", send_buf);
    printf("Amount of data sent is: %d\n", sent);
        
    close(socket_num);
    return 0;
}
Exemple #3
0
int main(int argc, char * argv[])
{
   int socket_num;         //socket descriptor
   char send_buf[BUF_SIZE];         //data buffer
   int send_len= 0;        //amount of data to send
   char in_buf[BUF_SIZE];         //data buffer
   char cmd_buf[CMD_SIZE];
   int in_len = 0;
   int sent= 0;            //actual amount of data sent
   u_int32_t seq = 0;
   Header header;
   int code = 0;
   int err = 0;
   int result = 0;
   int print = 1;
   fd_set readSet;
    
   /* check command line arguments  */
   if(argc!= 4)
   {
      printf("usage: %s host-name port-number handle\n", argv[0]);
      exit(1);
   }
   send_len = init_client(seq++, argv[3], send_buf); 
   /* set up the socket for TCP transmission  */
   socket_num= tcp_send_setup(argv[1], argv[2]);
   send(socket_num, send_buf, send_len, 0);
   /* get the data and send it */ 
   do {
      FD_ZERO(&readSet);
      FD_SET(STDIN_FILENO, &readSet);
      FD_SET(socket_num, &readSet);
      Prompt(&print, &err); 
      result = select(socket_num + 1, &readSet, NULL, NULL, NULL); 
      if(result < 0) {
         perror("select call");
         exit(-1);
      }
      if (FD_ISSET(STDIN_FILENO, &readSet)) {
         in_len = read(STDIN_FILENO, in_buf, BUF_SIZE);
         sscanf(in_buf, " %3s", cmd_buf);
         if (cmd_buf[2] == '\0' && cmd_buf[0] == '%') {
            code = handle_cmd(cmd_buf[1], send_buf, argv[3], &header, in_buf + strlen(cmd_buf), in_len, &send_len, &print);
            Send(&code, &sent, &seq, &socket_num, send_buf, &send_len); 
         }
         else {
            print = 1;
            printf("Invalid command\n");
         }
      }
      if(FD_ISSET(socket_num, &readSet)) {
         in_len = recv(socket_num, in_buf, BUF_SIZE, 0);
         if (in_len <= 0) {
            err = 2;
            printf("\nServer Terminated");
         }
         else {
            err = handle_server_data(in_buf, argv[3], in_len, socket_num);
            SetFlags(&err, &print); 
         }
      }
    } while(err != 2);
    close(socket_num);
    return 0; 
}