9cubed
ブログ | 将棋ウォーズ | 歌の練習
次の記事 >

第2回 Web開発環境構築について

Webプログラミング講座

第1回 Web の仕組みについて

公開日:2015-04-26
更新日:2019-05-11

1. 概要

独り言による Webプログラミング講座、「第1回 Web の仕組みについて」です。

2. 動画



3. 簡易Webサーバのソース

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Net;
using System.Net.Sockets;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //★独り言によるWebプログラミング講座
            
            //■Webの仕組みについて
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //リスナーを設定します
            IPAddress ip = IPAddress.Parse("127.0.0.1");
            int port = 80;
            TcpListener listener = new TcpListener(ip, port);

            //リクエストの受付開始
            listener.Start();

            //while (true) {
                TcpClient client = listener.AcceptTcpClient(); //リクエストが来るまで待機

                //リクエストの取得
                NetworkStream stream = client.GetStream();

                //クライアントから送られたデータを受信する
                byte[] data = new byte[256]; //読み込んだリクエストデータの一部分
                int size = 0; //読み込んだサイズ
                StringBuilder sb = new StringBuilder();
                while((size = stream.Read(data, 0, data.Length)) != 0) {
                    sb.Append(Encoding.ASCII.GetString(data, 0, size));

                    if (stream.DataAvailable == false) break; //読み込むデータがなくなったら抜ける。
                                                              //これをしないとRead()で待機してしまう。
                }
                
                //クライアントからのリクエスト内容の表示
                txtRequest.Text = sb.ToString();

                //パスの取得
                String filename = sb.ToString().Split('\n').First().Split(' ')[1];

                //ファイル読み込み
                //String html = File.ReadAllText(filename.Substring(1));
                String html = txtAnswer.Text;

                //クライアントにデータを返す
                byte[] htmlData = Encoding.UTF8.GetBytes(html);
                stream.Write(htmlData, 0, htmlData.Length);

                stream.Close();
                client.Close();
            //}

            listener.Stop();
        }
    }
}

次の記事 >

第2回 Web開発環境構築について

YouTube X

新着一覧

  • 歌の練習歌の練習
  • 大洗に行ってきた。ブログ
  • 角落ちで指導対局 5局目将棋ウォーズ
  • 角落ちで指導対局 4局目将棋ウォーズ
  • 角落ちで指導対局 3局目将棋ウォーズ
  • 角落ちで指導対局 2局目将棋ウォーズ
  • 角落ちで指導対局 1局目将棋ウォーズ
  • 中飛車に対して左の銀の位置が悪かった将棋ウォーズ
  • 二段になった!将棋ウォーズ
  • 終盤弱い将棋ウォーズ

アーカイブ

  • 2025/10
  • 2025/09
  • 2025/08

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲