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

Đề tài: Hiện tượng không tìm thấy cổng đã mở khi tắt shell?

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    30

    Mặc định Hiện tượng không tìm thấy cổng đã mở khi tắt shell?

    Đoạn code dưới có tác dụng mở một port 5588

    trong của sổ Shell Mình gõ
    > cd \chatlan
    > server
    > ss -l (Thấy đã mở thành công port 5588)
    > client connect tới port 5588 thành công

    Nhưng khi mình tắt cái bảng Shell đi (Cổng 5588 biến đâu mắt tam )
    Cái mình muốn hỏi các bạn là: Code ở dưới, có thiếu cái gì không mà cứ tắt bảng Shell đi là port close liền?

    C Code:
    1. #include<stdio.h>
    2. #include <sys/types.h>
    3. #include <sys/socket.h>
    4. #include <netinet/in.h>
    5. #include <netdb.h>
    6.  
    7.  
    8. int main()
    9. {
    10.     int sockfd, newsockfd, portno, clilen;
    11.     char buffer[256];
    12.     struct sockaddr_in serv_addr, cli_addr;
    13.     int n;
    14.     //-----------------------------
    15.     printf("Server!\n");
    16.  
    17.     //------------------------------
    18.  
    19.     //Step 1: Create Socket
    20.  
    21.     sockfd = socket(AF_INET, SOCK_STREAM, 0);
    22.     if (sockfd < 0)
    23.         error("Loi mo Socket");
    24.     //------------------------------
    25.  
    26.     //Step 2: Bind to port
    27.     serv_addr.sin_family = AF_INET;
    28.     serv_addr.sin_addr.s_addr = INADDR_ANY;
    29.     serv_addr.sin_port = htons(5588);
    30.     if (bind(sockfd, (struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
    31.         error("ERROR on binding");
    32.     //-----------------------------
    33.  
    34.     //Step 3: Listen
    35.     listen(sockfd,5);
    36.     //-----------------------------
    37.  
    38.     //Step 4: Waiting for connection request
    39.     printf("Cho Client...");
    40.     clilen = sizeof(cli_addr);
    41.     newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr, &clilen);
    42.     if (newsockfd < 0)
    43.         error("Loi Chap Nhan");
    44.     printf("Da ket noi\n");
    45.     //----------------------------
    46.  
    47.     //Step 5: Begin sending/receiving data
    48.     n = recv(newsockfd,buffer,255,0);
    49.     if (n < 0) error("Loi doc tu Socket");
    50.     buffer[n]='\0'; //End string
    51.     printf("Tin nhan tu Client: %s\n",buffer);
    52.  
    53.     if (n < 0) error("Loi ghi tu socket");
    54.     //------------------------------
    55.  
    56.     //Step 6: Close socket
    57.     close(sockfd);
    58.     close(newsockfd);
    59.     return 0;
    60. }

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,760

    Tắt đi thì chương trình của bạn sẽ được giải phóng, cổng bạn đã mở cũng sẽ được giải phóng... Để hiểu rõ điều này bạn tìm hiểu các tài liệu về stdin, stdout, tty, ... và tài liệu về Linux Kernel
    Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.
    Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Tắt bảng shell để làm gì ? Trong khi trong code của bạn có phần xuất ra thiết bị chuẩn ?
    Nếu muốn làm như các dịch vụ mạng khác, tắt shell đi vẫn còn hoạt động thì phải làm cho tiến trình lắng nghe port đó trở thành một daemon.

Các đề tài tương tự

  1. Mã shell xác định vị trí và tính số lần xuất hiện của 1 từ trong văn bản như thế nào ?
    Gửi bởi bienvotul trong diễn đàn Thắc mắc lập trình shell Linux
    Trả lời: 1
    Bài viết cuối: 22-01-2013, 12:01 PM
  2. Shell trong C# là gì thế mọi người???
    Gửi bởi balongha trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 04-03-2012, 06:15 PM
  3. Viết shell code nhưng không thành công, làm thế nào?
    Gửi bởi prefix trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 14-02-2012, 04:22 PM
  4. Shell: Độ ưu tiên của lệnh shell giao tiếp qua pipe
    Gửi bởi fuji13 trong diễn đàn Thắc mắc lập trình shell Linux
    Trả lời: 1
    Bài viết cuối: 25-01-2011, 10:01 AM
  5. Kết Hợp ASM và C tạo shell code
    Gửi bởi RadiRadic trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 9
    Bài viết cuối: 13-08-2009, 09:23 AM

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