-
-
【C言語】サーバにマルチスレッドを実装し、マルチクライアントに対応してみた
2020/02/08 -プログラミング
サーバ側のプログラムは、 多数のクライアントに対応するため、 マルチクライアント化に する必要があります。 マルチクライアントに対応していないと、 1クライアントが サーバと通信している間は、 他のク ...
-
-
Cでスレッドの最大数を確認し、上限増やしてみた!
2020/02/07 -プログラミング
マルチスレッドプログラミングをする上で、 今回はスレッドが最大で いくつ作成できるか検証してみます。 まずは実際に確認してみましょう。 上のコードを動かしてみると、 このようになってしまいます。 スレ ...
-
-
【解決策】SO_REUSEADDRをsetsockoptにセットしているのにbind()エラーになるとき
2020/02/04 -プログラミング
setsockoptを正しく使用しているのに、 どうしてもbindエラーになってしまう。 エラーの原因は、 Already in usedみたいな感じで 前回ソケットを使用した時に 上手く閉じれていな ...
-
-
【C言語】HTTP 404 Not Foundを返すWebサーバの実装
2020/02/03 -プログラミング
簡単なWebサーバを実装してみます。 簡易的なHTTPの機能しかないので、 webサーバというよりは、 HTTPサーバと呼ぶべきでしょうか。 今回行うことは・・・ HTTPで通信してきた クライアント ...
-
-
【C言語】HTTPリクエストを送って、WebサーバからのHTTPレスポンスを取得してみた
2020/01/30 -プログラミング
HTTPのリクエストメッセージを Webサーバに送信して、 返ってきたレスポンスメッセージを 表示させていきます。 今回は試しに リクエストラインには、 "HEAD / HTTP/1.1"(メソッド ...
-
-
【C言語】nslookupの簡易実装してみた!IPv6の取得方法(gethostbyname2)
2020/01/29 -プログラミング
nslookupを簡易実装しました。 入力されたドメイン名から IPv4とIPv6を取得します。 まずは完成形をnslookupで 叩いてみてみます。 nslookup ドメイン名で 割り振られたIP ...
-
-
【2020年版】Cygwin上でtelnet/apt-cyg/wgetインストール&使用方法
2020/01/28 -プログラミング
Cygwinでtelnetを 使う機会に遭遇しました。 というわけで早速インストール! Cygwinには標準でtelnetが 入っておりませんので、 インストールする必要があります。 telnetを入 ...
-
-
【C言語】スタックオーバーフローを体験してみる。その対策法も!?
2020/01/26 -プログラミング
「スタックオーバフローって 良く聞くけどあまり実感がない!」 という方の向けに、、、 その危険性をあえて実感してみましょう。 スタックオーバーフローですが、 よく似た言葉に、 バッファオーバーフロー ...
-
-
Cで見る実際のスタック領域の動き!rip/rsp/rbpとは?フレームポインタとは?
2020/01/25 -プログラミング
C++で実際にスタック領域が どのように変化するのかを 覗いてみます。 その前に事前知識の準備です。 ご存知の通り、 スタックはFILO構造で、 動的メモリ確保用の領域です。 プログラムにおいて、 ス ...
-
-
Cで見るメモリ領域のあれこれ!【text/data/bss/heap/stackセグメントとは?】
2020/01/19 -プログラミング
メモリ領域の勉強をしましょう。 プログラムを作るとメモリに格納されます。 ○○セッションとかセグメントと言います。 主に以下の5つあります。 text もしくは code data bss heap ...
-
-
【C言語】マルチスレッドでMutex(排他制御)をやってみた
2019/12/26 -プログラミング
前回の記事では、 マルチスレッドプログラミングを ご紹介しました。 前回のは、最後にリンク貼っておくので、 そっちを先に読むと理解しやすいかも。 今回はMutexを使うことで、 スレッド間で共有する変 ...
-
-
【マルチスレッド=浮気!?】実際にC++でプログラムしてみた。~マルチスレッドとは~
2019/12/22 -プログラミング
レイヤーが低い分野では特に、 マルチ○○○という言葉をよく聞きます。 マルチスレッド、マルチプロセス、マルチコア などなど、結構思い浮かぶかと思います。 どれも意味合いが違うのですが、 本質はどれも「 ...