Unixネットワークプログラミング学習ノート(一)socketプログラミングを初歩的に認識する


クライアントプログラミングステップ
  • ネットワーク接続の各パラメータ
  • を設定する.
  • ソケットのアドレスファミリー、宛先ポート番号、宛先ipアドレス
  • を設定する.
  • ネットワーク接続
  • を行う.
  • サーバ側に情報を送信または受信する
  • .
  • 切断
  • CLIENT()
        sockfd as a socket descriptor
        servaddr as a socket
        ARRAY is a array
        //AF_INET   IPv4,SOCK_STREAM         
        sockfd = socket(AF_INET, SOCK_STREAM, 0) 
        servaddr.sin_family = AF_INET
        servaddr.sin_port = port
        servaddr.sin_addr = ip
        connect(sockfd, (sockaddr *) &servaddr, sizeof(servaddr) )
        while TRUE
            if end of connect 
                break
            // read(sockfd, ARRAY, size)
            //or write(sockfd, ARRAY, size)
        exit(0)
    

    サーバ側プログラミング手順
  • ネットワーク接続関連パラメータ
  • を設定する.
  • ソケットのアドレスファミリー、アクセスポート番号、アクセス可能なipアドレス
  • を設定する.
  • バインドポート番号
  • アクティブソケットをパッシブソケット
  • に変換する.
  • 傍受ポートにメッセージが来るかどうか
  • 関連データ
  • の処理
  • 切断
  • SERVER()
        listenfd as a socket descriptor
        connfd as a connetced descriptor
        serveraddr
        listenfd = socket(AF_INET, SOCK_TREAM, 0)
        servaddr.sin_family = AF_INET
        servaddr.sin_port = port
        servaddr.sin_addr = ip
        bind(listenfd, (sockaddr *) &servaddr, sizeof(servaddr) )
        listen(listenfd, LISTENQ)
        while TRUE
            connfd = accept(listenfd, (sockaddr *) NULL, NULL)
            if end of connect 
                close(connfd)
            // read(connfd, ARRAY, size)
            //or write(connfd, ARRAY, size)