Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: file client.c bị lỗi khi chay trên kali linux ?

  1. #1
    Ngày gia nhập
    10 2015
    Bài viết
    13

    Mặc định file client.c bị lỗi khi chay trên kali linux ?

    mình cần viết một file client.c để chay với các file server trong kali linux (mang LAN)

    file client.c và server hoạt động như yahoo chat

    Khi mình chạy file client.c và server_relay.c trên terminal của linux, tin nhắn của client (1) đi qua và hiện lên trên server_relay và hiện trên client (2) và ngược lại
    client (1) <==> server_relay <==> client (2)

    Code:
    client(1) > hi 
    server_relay :>hi
    client (2): < hi
    
    ---
    
    client(2) : < hi
                : > hello 
    server_relay : > hi
                       : < hello
    client (1): < hi
                  : < hello

    mình đã viết được một ít trong client.c nhưng nó chỉ gửi message được một lần và sau đó server tự động ngắt kết nối

    đây file của mình: http://ge.tt/3g0PDFP2/v/0

    mình không biết cách upload lên page nên minh để file bên trang web share file này mong mọi người thông cảm

    mình cảm ơn mọi người nhiều lắm

  2. #2
    Ngày gia nhập
    01 2012
    Nơi ở
    localhost
    Bài viết
    140

    Do bạn đóng mở socket liên tục trong đoạn while đó.

    C Code:
    1. sockfd = socket(AF_INET, SOCK_STREAM, 0);
    2. if (sockfd < 0)
    3.                 error("ERROR opening socket");
    4. if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
    5.                 error("ERROR connecting");
    6. while (1) {
    7.                 printf("Please enter the message: ");
    8.                 bzero(buffer,256);
    9.                 fgets(buffer,255,stdin);
    10.  
    11.                 n = write(sockfd,buffer,strlen(buffer));
    12.                 if (n < 0)
    13.                         error("ERROR writing to socket");
    14.                 bzero(buffer,256);
    15.                 n = read(sockfd,buffer,255);
    16.                 if (n < 0)
    17.                         error("ERROR reading from socket");
    18.                 printf("%s\n",buffer);         
    19.                
    20.         }
    21. close(sockfd);
    Rẹt rẹt..

  3. #3
    Ngày gia nhập
    10 2015
    Bài viết
    13

    Trích dẫn Nguyên bản được gửi bởi sim Xem bài viết
    Do bạn đóng mở socket liên tục trong đoạn while đó.

    C Code:
    1. sockfd = socket(AF_INET, SOCK_STREAM, 0);
    2. if (sockfd < 0)
    3.                 error("ERROR opening socket");
    4. if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
    5.                 error("ERROR connecting");
    6. while (1) {
    7.                 printf("Please enter the message: ");
    8.                 bzero(buffer,256);
    9.                 fgets(buffer,255,stdin);
    10.  
    11.                 n = write(sockfd,buffer,strlen(buffer));
    12.                 if (n < 0)
    13.                         error("ERROR writing to socket");
    14.                 bzero(buffer,256);
    15.                 n = read(sockfd,buffer,255);
    16.                 if (n < 0)
    17.                         error("ERROR reading from socket");
    18.                 printf("%s\n",buffer);         
    19.                
    20.         }
    21. close(sockfd);

    bạn coi giúp mình cái đoạn này (phần in đậm ấy), mình không biết code ra sao cả, mình mới học C nên không có rành lắm, mong bạn giúp đỡ, cái code trên kia là do mình viết theo những gì mình biết

    Code:
    Your task is to develop a client that implements a reliable, in-order, duplicate-free delivery service in both directions, despite the (deliberate) disruptions and noise. You will need to implement features such as:
    • send buffer and retransmission capabilities
    • some form of ACK and/or NAK mechanism
    • an ARQ mechanism with appropriate time-outs
    • receiver buffer and re-ordering capabilities
    Each client should read its standard input. Messages will be supplied, one message per line. All messages should be sent to the other client, which should output them on standard output, one message per line, in the original order, reliably (none missing) and without duplicates. 
    The current published executable relay-server code and client code demonstrate the basic behaviour when messages are not dropped, reordered, duplicated, or mangled by the relay server. A more disruptive version of the relay server will be published soon.
    - - - Nội dung đã được cập nhật ngày 05-10-2015 lúc 08:13 AM - - -

    Trích dẫn Nguyên bản được gửi bởi sim Xem bài viết
    Do bạn đóng mở socket liên tục trong đoạn while đó.

    C Code:
    1. sockfd = socket(AF_INET, SOCK_STREAM, 0);
    2. if (sockfd < 0)
    3.                 error("ERROR opening socket");
    4. if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
    5.                 error("ERROR connecting");
    6. while (1) {
    7.                 printf("Please enter the message: ");
    8.                 bzero(buffer,256);
    9.                 fgets(buffer,255,stdin);
    10.  
    11.                 n = write(sockfd,buffer,strlen(buffer));
    12.                 if (n < 0)
    13.                         error("ERROR writing to socket");
    14.                 bzero(buffer,256);
    15.                 n = read(sockfd,buffer,255);
    16.                 if (n < 0)
    17.                         error("ERROR reading from socket");
    18.                 printf("%s\n",buffer);         
    19.                
    20.         }
    21. close(sockfd);
    alo bạn ơi bạn giúp mình vấn đề trên được không :'(

    - - - Nội dung đã được cập nhật ngày 05-10-2015 lúc 08:23 AM - - -

    ai giúp mình câu này được không

    Code:
    Your task is to develop a client that implements a reliable, in-order, duplicate-free delivery service in both directions, despite the (deliberate) disruptions and noise. You will need to implement features such as:
    • send buffer and retransmission capabilities
    • some form of ACK and/or NAK mechanism
    • an ARQ mechanism with appropriate time-outs
    • receiver buffer and re-ordering capabilities
    Each client should read its standard input. Messages will be supplied, one message per line. All messages should be sent to the other client, which should output them on standard output, one message per line, in the original order, reliably (none missing) and without duplicates. 
    The current published executable relay-server code and client code demonstrate the basic behaviour when messages are not dropped, reordered, duplicated, or mangled by the relay server. A more disruptive version of the relay server will be published soon.
    file của mình là http://ge.tt/3g0PDFP2/v/0

Tags của đề tài này

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn