毛のはえたようなもの

インターネット的なものをつらつらとかきつらねる。

ネットワークプログラミング1

socketを使おう!の巻。説明は面倒くさいのでしないというか、私もよくわかってない(o^▽^o)

#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define PORT 5555

void err_check(int res, char function_name[]);


int main(int argc , char* argv[]){
    int new_socket1,new_socket2;

    int bind_ok,listen_ok;
    ssize_t recv_ok;

    int data;
    int l;
    int data_size = 1000;

    char rcv_data[1000];
    
// socket
    new_socket1 = socket(AF_INET, SOCK_STREAM, 0);
    err_check(new_socket1, "socket");


    //bind
    struct sockaddr_in a;
    a.sin_family = AF_INET;
    a.sin_addr.s_addr= INADDR_ANY;
    a.sin_port = htons(PORT);
    bind_ok = bind(new_socket1, (struct sockaddr *)&a, sizeof(a));
    err_check(bind_ok,"bind");

    //listen
    listen_ok = listen(new_socket1,16);
    err_check(listen_ok,"listen");
    new_socket2 = accept(new_socket1, NULL,0);
    err_check(new_socket2,"socket2");

    //recv
    recv_ok = recv(new_socket2, rcv_data, data_size, 0);
    err_check(recv_ok,"recv");
    
    //close
    close(new_socket1);
    close(new_socket2);

    //print
    printf("%s", rcv_data);
    
    return 0;
}


void err_check(int res , char function_name[]){
    if(-1 == res){
        printf("%s\n",function_name);
        perror(" : ");
        exit(1);
    }
}