Socket Nid HELP!!!

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ronald, 21 Aug 2008.

  1. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    41
    Reputations:
    6
    ку, у меня проблема, курю док по С++ и натыкаюсь на такое (Socket) объяснение корявое, что читать ток, с переводчиком на человеческий :), вот исходники:
    -=СЕРВЕР=-
    1 #include <sys/types.h>
    2 #include <sys/socket.h>
    3 #include <netinet/in.h>
    4 #include <netdb.h>
    5 #include <memory.h>
    6 #define SRV_PORT 1234
    7 #define BUF_SIZE 64
    8 #define TXT_QUEST "Who are you?\n"
    9 main () {
    10 int s, s_new;
    11 int from_len;
    12 char buf[BUF_SIZE];
    13 struct sockaddr_in sin, from_sin;
    14 s = socket (AF_INET, SOCK_STREAM, 0);
    15 memset ((char *)&sin, '\0', sizeof(sin));
    16 sin.sin_family = AF_INET;
    17 sin.sin_addr.s_addr = INADDR_ANY;
    18 sin.sin_port = SRV_PORT;
    19 bind (s, (struct sockaddr *)&sin, sizeof(sin));
    20 listen (s, 3);
    21 while (1) {
    22 from_len = sizeof(from_sin);
    23 s_new = accept (s, &from_sin, &from_len);
    24 write (s_new, TXT_QUEST, sizeof(TXT_QUEST));
    25 from_len = read (s_new, buf, BUF_SIZE);
    26 write (1, buf, from_len);
    27 shutdown (s_new, 0);
    28 close (s_new);
    29 };
    30 }
    -=КЛИЕНТ=-
    1 #include <sys/types.h>
    2 #include <sys/socket.h>
    3 #include <netinet/in.h>
    4 #include <netdb.h>
    5 #include <memory.h>
    6 #define SRV_HOST "delta"
    7 #define SRV_PORT 1234
    8 #define CLNT_PORT 1235
    9 #define BUF_SIZE 64
    10 #define TXT_ANSW "I am your client\n"
    11 main () {
    12 int s;
    13 int from_len;
    14 char buf[BUF_SIZE];
    15 struct hostent *hp;
    16 struct sockaddr_in clnt_sin, srv_sin;
    17 s = socket (AF_INET, SOCK_STREAM, 0);
    18 memset ((char *)&clnt_sin, '\0', sizeof(clnt_sin));
    19 clnt_sin.sin_family = AF_INET;
    20 clnt_sin.sin_addr.s_addr = INADDR_ANY;
    21 clnt_sin.sin_port = CLNT_PORT;
    22 bind (s, (struct sockaddr *)&clnt_sin, sizeof(clnt_sin));
    23 memset ((char *)&srv_sin, '\0', sizeof(srv_sin));
    24 hp = gethostbyname (SRV_HOST);
    25 srv_sin.sin_family = AF_INET;
    26 memcpy ((char *)&srv_sin.sin_addr,hp->h_addr,hp->h_length);
    27 srv_sin.sin_port = SRV_PORT;
    28 connect (s, &srv_sin, sizeof(srv_sin));
    29 from_len = recv (s, buf, BUF_SIZE, 0);
    30 write (1, buf, from_len);
    31 send (s, TXT_ANSW, sizeof(TXT_ANSW), 0);
    32 close (s);
    33 exit (0);
    34 }
    -=ВОПРОС=-
    Как видно они только выводят по фразе типа, "ЗАЯЦ, ТЫ МЕНЯ СЛЫШИШЬ?"
    Нужна помощь, как отредактировать, чтобы можно было редактировать сообщения, чтоб можно было запустить сервер на одном компе в локалке, чтоы остальные компы к нему коннектились и балтали+ чтобы огран)) интерфейс консол канешно же чтобы ограничивалось не одниv сообщеним, а кучей++++++++++ за помощь
     
    #1 ronald, 21 Aug 2008
    Last edited: 22 Aug 2008
  2. ronald

    ronald Elder - Старейшина

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    41
    Reputations:
    6
    жду помощи.... жду....