C programming prashnayak

Hecker

Well-known member
  • Apr 18, 2022
    6,175
    4,483
    113
    24
    Dinosaur, Colorado
    server ekak haduwa local host dala .Api server seka start karala

    Me client
    $ nc 127.0.0.1 9001
    Hello from the server Hello world

    Me Server
    $ ./a.out
    Client Connected
    Client has sent : Hello world

    meka prashnayak nathuwa wada kala.
    Eeth deweni para

    Me client
    $ nc 127.0.0.1 9001
    (UNKNOWN) [127.0.0.1] 9001 (?) : Connection refused

    Me server
    $ ./a.out
    (melo magualak unena)

    man meka aai compile kala ethakota wada. server eka start karanna kalin compile karannama wenawa eeka hada ganne kohomada?

    ----------------------Code eka---------------------
    #include<stdio.h>
    #include<sys/socket.h>
    #include<sys/types.h>
    #include<netinet/in.h>
    #include <arpa/inet.h>
    int main()
    {
    int server_socket; //used for creating socket
    int client_socket; //used for accepting connection
    struct sockaddr_in server_addr; // Structure required by the 'bind()'
    char buffer[500] = "Hello from the server";
    char recv_buffer[500];

    server_socket = socket(AF_INET, SOCK_STREAM, 0); //Creates a TCP Socket

    server_addr.sin_family = AF_INET; //Declaring the type
    server_addr.sin_port = htons(9001); //Declaring the port number to listen on
    server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //Declaring the host

    bind(server_socket, (struct server_addr*) &server_addr, sizeof(server_addr)); //Bind server
    listen(server_socket, 5);

    client_socket = accept(server_socket, NULL, NULL); //Accept incoming connections
    printf("Client Connected\n");
    send(client_socket, buffer, sizeof(buffer), 0); //Sending data to the client
    recv(client_socket, recv_buffer, sizeof(recv_buffer), 0); //Recv data from the client
    printf("Client has sent : %s", recv_buffer); //Print out the data sent by client

    close(server_socket); //Close the connection
    return 0;
    }
    ------ Post added on Sep 26, 2022 at 1:18 PM
     

    siri_ayya

    Well-known member
  • Feb 1, 2022
    16,966
    1
    29,883
    113
    උඹට තියෙන ප්‍රශ්නෙ client ගෙන් එක req එකක් ආවට පස්සෙ server එක වැඩ නෑ ආයේ start කරන්න ඕනෙ seen එකද?

    ප්‍රශ්නෙ එක නම් අවුල තියෙන්නෙ උඹේ server code එක while loop එකක run වෙන්නෙ නැති එකේ.. දැන් තියේන විදිහට server එක එකපාරක් run වෙලා නවතිනවා.. Req එකින් එකට server start කරන එක හරි විදිහ නෙවෙයි

    නැත්නම් දෙවෙනි පාර start කරාම වැඩ කරන්නේ නැති එකද?

    එතන නම් වෙන්නෙ කලිම් run කරපු client port 9001 අල්ලන් ඉන්න එක.. උඹේ client program එකේ port එක release කරන logic එක දාන්න ඕන..

    ඇයි උඹ c වලින් server ගහන්නේ?

    Socket programming ඉගෙනගන්න නම් C හොඳයි... නැත්නම් C වලින් server ගගහ ඉන්න එපා බන් තේරුමක් නෑ 🤭
     
    • Like
    Reactions: pathumputha

    Hecker

    Well-known member
  • Apr 18, 2022
    6,175
    4,483
    113
    24
    Dinosaur, Colorado
    උඹට තියෙන ප්‍රශ්නෙ client ගෙන් එක req එකක් ආවට පස්සෙ server එක වැඩ නෑ ආයේ start කරන්න ඕනෙ seen එකද?

    ප්‍රශ්නෙ එක නම් අවුල තියෙන්නෙ උඹේ server code එක while loop එකක run වෙන්නෙ නැති එකේ.. දැන් තියේන විදිහට server එක එකපාරක් run වෙලා නවතිනවා.. Req එකින් එකට server start කරන එක හරි විදිහ නෙවෙයි

    නැත්නම් දෙවෙනි පාර start කරාම වැඩ කරන්නේ නැති එකද?

    එතන නම් වෙන්නෙ කලිම් run කරපු client port 9001 අල්ලන් ඉන්න එක.. උඹේ client program එකේ port එක release කරන logic එක දාන්න ඕන..

    ඇයි උඹ c වලින් server ගහන්නේ?

    Socket programming ඉගෙනගන්න නම් C හොඳයි... නැත්නම් C වලින් server ගගහ ඉන්න එපා බන් තේරුමක් නෑ 🤭
    nana server eka start karala nc send kalama server eken eeka display wela close wenawa!

    eeta passe aai server eka start kalama server eka wada karanawa nc eka refused wenawa, Aai compile karanna wenawa eeka thama awla!
    ඇයි උඹ c වලින් server ගහන්නේ?
    Cyber sec karanne
     

    kasun090354t

    Well-known member
  • Aug 21, 2011
    24,041
    36,036
    113
    කෑගල්ල
    උඹට තියෙන ප්‍රශ්නෙ client ගෙන් එක req එකක් ආවට පස්සෙ server එක වැඩ නෑ ආයේ start කරන්න ඕනෙ seen එකද?

    ප්‍රශ්නෙ එක නම් අවුල තියෙන්නෙ උඹේ server code එක while loop එකක run වෙන්නෙ නැති එකේ.. දැන් තියේන විදිහට server එක එකපාරක් run වෙලා නවතිනවා.. Req එකින් එකට server start කරන එක හරි විදිහ නෙවෙයි

    නැත්නම් දෙවෙනි පාර start කරාම වැඩ කරන්නේ නැති එකද?

    එතන නම් වෙන්නෙ කලිම් run කරපු client port 9001 අල්ලන් ඉන්න එක.. උඹේ client program එකේ port එක release කරන logic එක දාන්න ඕන..

    ඇයි උඹ c වලින් server ගහන්නේ?

    Socket programming ඉගෙනගන්න නම් C හොඳයි... නැත්නම් C වලින් server ගගහ ඉන්න එපා බන් තේරුමක් නෑ 🤭
    අඩේ මේ ටික අර උබ share කරපු පයිතන් video set එකේ තිබ්බ නේද github එකේ. Neuralnine ගේ සෙට් එකේ. මටනං ඒ හරිය ට යද්දි ටිකක් අවුල් ගියා. මොනවා උනත් උ සුපිරි ඩයල් එකක්.
     

    Solo Rider

    Well-known member
  • Sep 4, 2020
    35,924
    1
    157,328
    113
    98
    හෝමාගම
    උඹට තියෙන ප්‍රශ්නෙ client ගෙන් එක req එකක් ආවට පස්සෙ server එක වැඩ නෑ ආයේ start කරන්න ඕනෙ seen එකද?

    ප්‍රශ්නෙ එක නම් අවුල තියෙන්නෙ උඹේ server code එක while loop එකක run වෙන්නෙ නැති එකේ.. දැන් තියේන විදිහට server එක එකපාරක් run වෙලා නවතිනවා.. Req එකින් එකට server start කරන එක හරි විදිහ නෙවෙයි

    නැත්නම් දෙවෙනි පාර start කරාම වැඩ කරන්නේ නැති එකද?

    එතන නම් වෙන්නෙ කලිම් run කරපු client port 9001 අල්ලන් ඉන්න එක.. උඹේ client program එකේ port එක release කරන logic එක දාන්න ඕන..

    ඇයි උඹ c වලින් server ගහන්නේ?

    Socket programming ඉගෙනගන්න නම් C හොඳයි... නැත්නම් C වලින් server ගගහ ඉන්න එපා බන් තේරුමක් නෑ 🤭

    ඒක loop එකකට දාන්න මේ වගේ
    Code:
        while( (client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c)) ) {
                      ..
        }


    2 වෙනි උදාහරණය ගන්න මෙතනින් ->
    https://www.binarytides.com/server-client-example-c-sockets-linux/

    while loop ekak dapan. SO_REUSEADDR socket option eka gena tikak hoyapan :D


    me tika
     
    • Like
    Reactions: Arumbaya De Almeida

    Avishka Indula

    Well-known member
  • Jan 6, 2019
    896
    2,262
    113
    25
    Kandy
    උඹට තියෙන ප්‍රශ්නෙ client ගෙන් එක req එකක් ආවට පස්සෙ server එක වැඩ නෑ ආයේ start කරන්න ඕනෙ seen එකද?

    ප්‍රශ්නෙ එක නම් අවුල තියෙන්නෙ උඹේ server code එක while loop එකක run වෙන්නෙ නැති එකේ.. දැන් තියේන විදිහට server එක එකපාරක් run වෙලා නවතිනවා.. Req එකින් එකට server start කරන එක හරි විදිහ නෙවෙයි

    නැත්නම් දෙවෙනි පාර start කරාම වැඩ කරන්නේ නැති එකද?

    එතන නම් වෙන්නෙ කලිම් run කරපු client port 9001 අල්ලන් ඉන්න එක.. උඹේ client program එකේ port එක release කරන logic එක දාන්න ඕන..

    ඇයි උඹ c වලින් server ගහන්නේ?

    Socket programming ඉගෙනගන්න නම් C හොඳයි... නැත්නම් C වලින් server ගගහ ඉන්න එපා බන් තේරුමක් නෑ 🤭
    Socket Programming අයිති වෙන්නෙ මොන Field එකට ද? අද තමා මුලින්ම ඒ නම ඇහුවේ. :shocked: Server එකක් ගහනවා කිව්වෙ මොකක්ද?
     

    siri_ayya

    Well-known member
  • Feb 1, 2022
    16,966
    1
    29,883
    113
    Socket Programming අයිති වෙන්නෙ මොන Field එකට ද? අද තමා මුලින්ම ඒ නම ඇහුවේ. :shocked: Server එකක් ගහනවා කිව්වෙ මොකක්ද?
    Socket programming අයිති වෙන්නෙ network programming වලට.. Server එකක් run වෙද්දී client request වලට රෙස්පොන්ඩ් කරන්නේ socket හරහා.. Node.js,
    sprimg boot වගේ framewprk වල ඒවා abstract කරලා තියෙන්නෙ...
     

    Avishka Indula

    Well-known member
  • Jan 6, 2019
    896
    2,262
    113
    25
    Kandy
    Socket programming අයිති වෙන්නෙ network programming වලට.. Server එකක් run වෙද්දී client request වලට රෙස්පොන්ඩ් කරන්නේ socket හරහා.. Node.js,
    sprimg boot වගේ framewprk වල ඒවා abstract කරලා තියෙන්නෙ...
    Thank you. 😍
     

    NEMISIS

    Well-known member
  • Nov 13, 2013
    11,348
    19,441
    113
    Colombo
    උඹට තියෙන ප්‍රශ්නෙ client ගෙන් එක req එකක් ආවට පස්සෙ server එක වැඩ නෑ ආයේ start කරන්න ඕනෙ seen එකද?

    ප්‍රශ්නෙ එක නම් අවුල තියෙන්නෙ උඹේ server code එක while loop එකක run වෙන්නෙ නැති එකේ.. දැන් තියේන විදිහට server එක එකපාරක් run වෙලා නවතිනවා.. Req එකින් එකට server start කරන එක හරි විදිහ නෙවෙයි

    නැත්නම් දෙවෙනි පාර start කරාම වැඩ කරන්නේ නැති එකද?

    එතන නම් වෙන්නෙ කලිම් run කරපු client port 9001 අල්ලන් ඉන්න එක.. උඹේ client program එකේ port එක release කරන logic එක දාන්න ඕන..

    ඇයි උඹ c වලින් server ගහන්නේ?

    Socket programming ඉගෙනගන්න නම් C හොඳයි... නැත්නම් C වලින් server ගගහ ඉන්න එපා බන් තේරුමක් නෑ 🤭

    සොකට් ප්‍රෝගැමින් while loop එක ඇතුලෙන් වලදි අලුත් රික්වෙස්ට් එකක් ආවම අලුත් ත්‍රෙඩ් එකක් හරි ප්‍රොසෙස් එකක් හරි ස්ටාට් කරන්න ඕන නේද අවුරුදු 10ට විතර කලින් කරපුවා නිසා ලාවට තමයි මතක
    මට මතක විදියට එක්කො pthread එකක් ස්ටාට් කරන්න ඕන එහෙම නැත්තං fork system call එකෙන් අලුත් ප්‍රොසෙස් එකක්ම ස්ටාට් කරන්න ඕන ඒක ඇතුලෙ තමයි අලුත් රික්වෙස්ට් එක ප්‍රොසෙස් කරන්නෙ
     

    siri_ayya

    Well-known member
  • Feb 1, 2022
    16,966
    1
    29,883
    113
    සොකට් ප්‍රෝගැමින් while loop එක ඇතුලෙන් වලදි අලුත් රික්වෙස්ට් එකක් ආවම අලුත් ත්‍රෙඩ් එකක් හරි ප්‍රොසෙස් එකක් හරි ස්ටාට් කරන්න ඕන නේද අවුරුදු 10ට විතර කලින් කරපුවා නිසා ලාවට තමයි මතක
    මට මතක විදියට එක්කො pthread එකක් ස්ටාට් කරන්න ඕන එහෙම නැත්තං fork system call එකෙන් අලුත් ප්‍රොසෙස් එකක්ම ස්ටාට් කරන්න ඕන ඒක ඇතුලෙ තමයි අලුත් රික්වෙස්ට් එක ප්‍රොසෙස් කරන්නෙ
    True :yes:
     

    NEMISIS

    Well-known member
  • Nov 13, 2013
    11,348
    19,441
    113
    Colombo
    ඒ කාලෙ system programming කාල තිවුනෙ
    ඒ කාලෙ එසයිමන්ට් වල ඩෙඩ් ලයින් එකට ඕන්න මෙන්න තියලා සමහර එවුන් එනවා එසයිමන්ට් එක කරං යන්න බෝතලේකුත් අරං
     
    • Haha
    Reactions: siri_ayya