{"id":7122,"date":"2015-05-09T23:56:46","date_gmt":"2015-05-09T14:56:46","guid":{"rendered":"http:\/\/www.moonmile.net\/blog\/?p=7122"},"modified":"2015-05-11T04:19:37","modified_gmt":"2015-05-10T19:19:37","slug":"win-iotrt-%e3%81%a7-streamsocketlistener-%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6%e7%b0%a1%e6%98%93webserver%e3%82%92%e4%bd%9c%e3%82%8b","status":"publish","type":"post","link":"https:\/\/www.moonmile.net\/blog\/archives\/7122","title":{"rendered":"Win IoT\/RT \u3067 StreamSocketListener \u3092\u5229\u7528\u3057\u3066\u7c21\u6613WebServer\u3092\u4f5c\u308b"},"content":{"rendered":"<p>Win IoT on RPi \u3067\u306f\u3001HttpListener \u304c\u3042\u308a\u307e\u305b\u3093\u3002\u3068\u8a00\u3044\u307e\u3059\u304b\u3001Universal \u30a2\u30d7\u30ea\u81ea\u4f53\u306b\u3001System.Net.HttpListener \u304c\u306a\u3044\u306e\u3067\u3001\u4f55\u304b\u4ee3\u66ff\u6848\u3092\u8003\u3048\u306a\u3044\u3068\u3044\u3051\u307e\u305b\u3093\u3002\u3063\u3066\u3053\u3068\u3067\u3001\u3059\u3063\u304b\u308a\u5fd8\u308c\u3066\u3044\u305f\u3001Windows.Networking.StreamSocketListener \u3092\u4f7f\u3046\u308f\u3051\u3067\u3059\u304c\u3001\u3061\u3087\u3063\u3068\u5d4c\u3063\u305f\u306e\u3067\u30e1\u30e2\u3092\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<h2>StreamSocketListener \u3092\u30b9\u30c8\u30a2\u30a2\u30d7\u30ea\u3067\u4f7f\u3046<\/h2>\n<p>\u3082\u3068\u3082\u3068\u3001\uff08\u78ba\u304b\uff09Windows 8.1 \u3067\u5c0e\u5165\u3055\u308c\u3066\u30b9\u30c8\u30a2\u30d7\u30ea\u3067\u3082 HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u5f85\u3061\u306e\u30b5\u30fc\u30d0\u30fc\u304c\u4f5c\u308c\u305f\u3068\u3053\u308d\u304b\u3089\u30b9\u30bf\u30fc\u30c8\u3067\u3059\u3002\u4ee5\u524d\u3001<a href=\"http:\/\/www.moonmile.net\/blog\/archives\/6406\">HttpListener \u3068 TcpListener \u306e\u9055\u3044\u3068 Firewall \u3068 netsh \u306e\u8a2d\u5b9a | Moonmile Solutions Blog<\/a>; \u306a\u3068\u3053\u308d\u3067\u3001HttpListener \u3092\u99c6\u4f7f\u3057\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff08\u3053\u306e\u8a18\u4e8b\u3092\u66f8\u3044\u305f\u306e\u306f Windows 8 \u306e\u9803\uff09\u3001netsh \u3084\u3089 firewall \u3084\u3089\u306e\u8a2d\u5b9a\u304c\u5927\u5909\u3067\u3001\u3069\u3046\u306b\u304b\u306a\u3089\u306a\u3044\u304b\u3068\u601d\u3063\u3066\u3044\u305f\u3068\u3053\u308d\u306a\u306e\u3067\u3059\u304c\u3001Windows 8.1 \u3067\u306f\u3042\u3063\u3055\u308a\u89e3\u6c7a\u3055\u308c\u3066\u3057\u307e\u3044\u307e\u3057\u305f\u3002<\/p>\n<p>\u3067\u3082\u3063\u3066\u3001\u5f53\u6642\u306e\u30d6\u30ed\u30b0\u3084\u3089\u8abf\u3079\u76f4\u3057\u3066\u3044\u305f\u3068\u3053\u308d\u3001Stack Overflow \u306a\u3069\u3092\u898b\u308b\u3068\u3001\u306a\u304b\u306a\u304b\u3046\u307e\u304f\u3044\u304b\u306a\u3044\u3072\u3068\u304c\u591a\u3044\u3088\u3046\u3067\u3059\u3002\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3066\u304d\u306b\u306f\u3001<\/p>\n<p>Windows 8 StreamSocket sample \u30b5\u30f3\u30d7\u30eb \u8a00\u8a9e: C#, C++, JavaScript Visual Studio 2013 \u7528<br \/>\n<a href=\"https:\/\/code.msdn.microsoft.com\/windowsapps\/StreamSocket-Sample-8c573931\">https:\/\/code.msdn.microsoft.com\/windowsapps\/StreamSocket-Sample-8c573931<\/a><\/p>\n<p>\u304c\u552f\u4e00\u6b63\u3057\u3044\u3088\u3046\u306a\u6c17\u304c\u3057\u307e\u3059\u3002\u672c\u5bb6\u306b\u3042\u305f\u308a\u307e\u3057\u3087\u3046\u3002\u3068\u306f\u3044\u3048\u3001\u3053\u306e\u672c\u5bb6\u306e\u30b5\u30f3\u30d7\u30eb\u306b\u3082\u843d\u3061\u5ea6\u304c\u3042\u3063\u3066\u3001StreamSocketListener \u3092\u4f7f\u3063\u3066 HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u5f85\u3061\u3092\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u306f\u66f8\u304b\u308c\u3066\u3044\u306a\u3044\u3093\u3067\u3059\u3088\u306d\u3002\u3069\u3061\u3089\u304b\u3068\u3044\u3046\u3068 TcpListener \u306b\u8fd1\u3044\u3068\u3053\u308d\u306b\u3042\u308b\u306e\u3067\u3001TCP\/IP \u306e\u30c7\u30fc\u30bf\u3092\u751f\u3067\u6271\u3046\u3088\u3046\u306a\u3082\u306e\u3067\u3059\u3002\u304c\u3001\u901a\u5e38\u306e Web API \u7684\u306b\u4f7f\u304a\u3046\u3068\u601d\u3046\u3068\u305d\u306e\u307e\u307e\u3067\u306f\u7d50\u69cb\u9762\u5012\u306a\u306e\u3067\u3001HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u98a8\u306b\u3067\u304d\u308b\u3068\u4fbf\u5229\u3067\u3059\u306d\u3002<\/p>\n<p>\u5e78\u3044\u306b\u3057\u3066\u3001Win IoT \u306e\u30b5\u30f3\u30d7\u30eb\u306e\u4e2d\u306b<\/p>\n<p>App2App WebServer<br \/>\n<a href=\"https:\/\/github.com\/ms-iot\/samples\/tree\/develop\/App2App%20WebServer\">https:\/\/github.com\/ms-iot\/samples\/tree\/develop\/App2App%20WebServer<\/a><\/p>\n<p>\u304c\u3001HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u7c21\u6613\u5b9f\u88c5\u3057\u3066\u3044\u308b\u306e\u3067\u629c\u304d\u51fa\u3057\u3066\u307f\u307e\u3057\u305f\u3002<br \/>\n\u3061\u306a\u307f\u306b\u3001Windows.Networking.StreamSocketListener \u81ea\u4f53\u306f\u3001WinRT \u5185\u306e\u30af\u30e9\u30b9\u306a\u306e\u3067\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30d7\u30ea\u304b\u3089\u76f4\u63a5\u4f7f\u3048\u307e\u305b\u3093\uff08\u9593\u63a5\u7684\u306b WinRT \u3092\u53c2\u7167\u8a2d\u5b9a\u3055\u305b\u308b\u3053\u3068\u3067\u5229\u7528\u3067\u304d\u307e\u3059\u304c\uff09\u3002\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u30a2\u30d7\u30ea\u306e\u5834\u5408\u306f\u3001\u5f93\u6765\u901a\u308a\u3001HttpListener \u304b TcpListener \u3092\u4f7f\u3046\u3068\u3088\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<h2>\u7c21\u6613\u7684\u306a WebServer \u30af\u30e9\u30b9\u3092\u5b9f\u88c5\u3059\u308b<\/h2>\n<p>\u3056\u3063\u3068\u5b9f\u88c5\u3057\u305f\u3082\u306e\u304c\u4ee5\u4e0b\u3067\u3059\u3002GET \u30b3\u30de\u30f3\u30c9\u306b\u3057\u304b\u5bfe\u5fdc\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001Web API \u3067 REST \u3092\u4f7f\u3046\u9650\u308a\u306f\u3053\u308c\u3067\u5341\u5206\u3067\u3059\u3002\u307e\u3042\u3001\u305d\u306e\u3046\u3061\u753b\u50cf\u3092\u9001\u308b\u7a0b\u5ea6\u306b\u306f POST \u306b\u5bfe\u5fdc\u3057\u305f\u3044\u3068\u3053\u308d\u3067\u3059\u304c\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/\/ &lt;summary&gt;\r\n\/\/\/ \u7c21\u6613WebServer\u30af\u30e9\u30b9\r\n\/\/\/ \u5358\u7d14\u306a GET \u30b3\u30de\u30f3\u30c9\u306e\u307f\u5bfe\u5fdc\u3059\u308b\r\n\/\/\/ &lt;\/summary&gt;\r\npublic class SimpleWebServer\r\n{\r\n    StreamSocketListener listener;\r\n    StreamSocket socket;\r\n    public event Action&lt;string&gt; OnReceived;\r\n\r\n    \/\/ public Windows.Networking.HostName LOCALHOST { get; set; }\r\n    public int PORT { get; set; }\r\n    public SimpleWebServer()\r\n    {\r\n        \/\/ this.LOCALHOST = NetworkInformation.GetHostNames().Where(n =&gt; n.Type == Windows.Networking.HostNameType.Ipv4).First();\r\n        \/\/ this.LOCALHOST = new Windows.Networking.HostName(&amp;quot;localhost&amp;quot;);\r\n        this.PORT = 8080;\r\n    }\r\n\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u53d7\u4ed8\u958b\u59cb\r\n    \/\/\/ &lt;\/summary&gt;\r\n    public async void Start()\r\n    {\r\n        listener = new StreamSocketListener();\r\n        listener.ConnectionReceived += Listener_ConnectionReceived;\r\n        \/\/ await listener.BindEndpointAsync(LOCALHOST, PORT.ToString());\r\n        await listener.BindServiceNameAsync(PORT.ToString());\r\n    }\r\n    private async void Listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)\r\n    {\r\n        socket = args.Socket;\r\n        var dr = new DataReader(socket.InputStream);\r\n\r\n        \/\/\/ GET \u30d8\u30c3\u30c0\u3092\u53d6\u308a\u51fa\u3057\r\n        StringBuilder request = new StringBuilder();\r\n        uint BufferSize = 1024;\r\n        using (IInputStream input = socket.InputStream)\r\n        {\r\n            byte&#x5B;] data = new byte&#x5B;BufferSize];\r\n            IBuffer buffer = data.AsBuffer();\r\n            uint dataRead = BufferSize;\r\n            while (dataRead == BufferSize)\r\n            {\r\n                await input.ReadAsync(buffer, BufferSize, InputStreamOptions.Partial);\r\n                request.Append(Encoding.UTF8.GetString(data, 0, data.Length));\r\n                dataRead = buffer.Length;\r\n            }\r\n        }\r\n        \/\/ GET method \u3092\u53d6\u308a\u51fa\u3057\r\n        string requestMethod = request.ToString().Split(&#039;n&#039;)&#x5B;0];\r\n        string&#x5B;] requestParts = requestMethod.Split(&#039; &#039;);\r\n        var text = requestParts&#x5B;1];\r\n\r\n        \/\/\/ GET\u30b3\u30de\u30f3\u30c9\u306e\u53d7\u4fe1\u30a4\u30d9\u30f3\u30c8\r\n        if (this.OnReceived != null)\r\n        {\r\n            OnReceived(text);\r\n        }\r\n    }\r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ \u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u8fd4\u3059\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=&amp;quot;text&amp;quot;&gt;&lt;\/param&gt;\r\n    public async void SendResponse( string text )\r\n    {\r\n        if (socket == null) return;\r\n\r\n        byte&#x5B;] bodyArray = Encoding.UTF8.GetBytes(text);\r\n        MemoryStream stream = new MemoryStream(bodyArray);\r\n        string header = String.Format(&amp;quot;HTTP\/1.0 200 OKrn&amp;quot; +\r\n                            &amp;quot;Content-Length: {0}rn&amp;quot; +\r\n                            &amp;quot;Connection: closernrn&amp;quot;,\r\n                            stream.Length);\r\n        var dw = new DataWriter(socket.OutputStream);\r\n        dw.WriteString(header);\r\n        dw.WriteString(text);\r\n        await dw.StoreAsync();\r\n    }\r\n}\r\n<\/pre>\n<p>\u5229\u7528\u3059\u308b\u3068\u304d\u306f\u3001\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u53d7\u4fe1\u3092\u3057\u305f\u3068\u304d\u306e OnReceived \u30a4\u30d9\u30f3\u30c8\u3067\u51e6\u7406\u3092\u884c\u3044\u307e\u3059\u3002\u5fdc\u7b54\u306f\u3001\u305d\u306e\u307e\u307e SendResponse \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3044\u307e\u3059\u3002\u3053\u306e\u3042\u305f\u308a\u3001\u30b9\u30c8\u30ea\u30fc\u30e0\u306b\u3057\u3066\u3082\u3088\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nSimpleWebServer _server;\r\nprivate void MainPage_Loaded(object sender, RoutedEventArgs e)\r\n{\r\n    this.textIP.Text = NetworkPresenter.GetCurrentIpv4Address();\r\n\r\n    _server = new SimpleWebServer();\r\n    _server.OnReceived += _server_OnReceived;\r\n    _server.Start();\r\n}\r\n\r\nprivate async void _server_OnReceived(string data)\r\n{\r\n    \/\/ GET \u53d7\u4fe1\r\n    await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,\r\n        () =&gt; { textGet.Text = data; });\r\n    \/\/ \u5fdc\u7b54\u3092\u9001\u4fe1\r\n    _server.SendResponse(&amp;quot;response &amp;quot; + data);\r\n}\r\n<\/pre>\n<h2>\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u3092\u66f8\u304d\u63db\u3048\u308b<\/h2>\n<p>\u73fe\u72b6 Visual Studio 2015 RC \u3067\u306f\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\uff08Package.appxmanifest\uff09\u306e GUI \u304c\u51fa\u3066\u6765\u305a\u3001XML \u3092\u76f4\u63a5\u7de8\u96c6\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\nStreamSocketListener \u30af\u30e9\u30b9\u3067 HTTP \u30d7\u30ed\u30c8\u30b3\u30eb\u5f85\u3061\u3092\u3055\u305b\u305f\u3044\u5834\u5408\u306f\u3001internetClientServer\uff08\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8 \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\/\u30b5\u30fc\u30d0\u30fc\uff09\u3068privateNetworkClientServer\uff08\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\uff09\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u3092\u66f8\u304d\u5fd8\u308c\u3066\u3044\u308b\u30d6\u30ed\u30b0\u304c\u591a\u304f\u3066\u3001\u5df7\u3067\u300c\u7e4b\u304c\u3089\u306a\u3044\u300d\u3068\u3044\u3046\u306e\u306f\u3001\u5927\u65b9\u3053\u306e\u305b\u3044\u3067\u3059\u3002<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n  &lt;Capabilities&gt;\r\n    &lt;Capability Name=&amp;quot;internetClientServer&amp;quot; \/&gt;\r\n    &lt;Capability Name=&amp;quot;privateNetworkClientServer&amp;quot;\/&gt;\r\n  &lt;\/Capabilities&gt;\r\n<\/pre>\n<p>\u3053\u308c\u3092\u8a2d\u5b9a\u3057\u3066\u304a\u304f\u3060\u3051\u3067\u3001netsh \u3084\u3089 firewall \u3084\u3089\u306e\u8a2d\u5b9a\u3092\u3057\u306a\u304f\u3066\u826f\u304f\u306a\u308a\u307e\u3059\u3002\u591a\u5206\u3001\u30b9\u30c8\u30a2\u30a2\u30d7\u30ea\u306e\u7bc4\u7587\u306b\u306a\u308b\u306e\u3067\u3001Windows \u672c\u4f53\u306e TCP\/IP \u306e\u307b\u3046\u304b\u3089\u5207\u308a\u96e2\u3055\u308c\u3066\u3044\u308b\uff08WinRT\u3067\u5305\u307e\u308c\u3066\u3044\u308b\uff09\u306e\u3067\u306f\u306a\u3044\u304b\u3001\u3068\u60f3\u50cf\u3057\u307e\u3059\u3002<\/p>\n<h2>BindServiceNameAsync \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3046<\/h2>\n<p>StreamSocketListener \u3067\u30b5\u30fc\u30d0\u30fc\u3092\u4f5c\u308b\u3068\u304d\u306b\u3001\u3069\u306e URL \u3068\u30dd\u30fc\u30c8\u3067\u5f85\u3064\u306e\u304b\uff1f\u3092\u6307\u5b9a\u3059\u308b\u306e\u3067\u3059\u304c\u3001\u5b9f\u969b\u306e\u3068\u3053\u308d\u3001\u8907\u6570\u306e\u30a2\u30d7\u30ea\u3067\u540c\u4e00\u30dd\u30fc\u30c8\u3092\u5171\u6709\u3067\u304d\u306a\u3044\u306e\u3067\u3001\u5b9f\u8cea\u30dd\u30fc\u30c8\u3060\u3051\u3057\u3066\u3059\u308c\u3070 ok \u3067\u3059\u3002\u307e\u305f\u3001BindEndpointAsync \u30e1\u30bd\u30c3\u30c9\u3067\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3067\u6307\u5b9a\u3055\u308c\u308b\u300c\u30db\u30b9\u30c8\u540d\u300d\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3067\u3059\u304c\u3001\u3042\u3048\u3066\u300clocalhost\u300d\u306e\u3088\u3046\u306b\u540c\u4e00\u30de\u30b7\u30f3\u5185\u306b\u5236\u9650\u3057\u305f\u308a\u3001\u300chome-pc\u300d\u306e\u3088\u3046\u306b\u30db\u30b9\u30c8\u540d\u3092\u308f\u3056\u308f\u3056\u6307\u5b9a\u3057\u3066\u5916\u90e8\u30a2\u30d7\u30ea\u304b\u3089\u4f7f\u308f\u305b\u306a\u3044\u3088\u3046\u306b\u3057\u305f\u308a\u3057\u306a\u3044\u9650\u308a\u306f\u3001BindEndpointAsync \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u3046\u610f\u5473\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u3068\u8a00\u3044\u307e\u3059\u304b\u3001\u3053\u3053\u3067\u30db\u30b9\u30c8\u540d\u3092\u6307\u5b9a\u3059\u308b\u306e\u304c\u7d50\u69cb\u9762\u5012\u3067\u3059\u3002\u308f\u3056\u308f\u3056\u540d\u524d\u3092\u63c3\u3048\u308b\u305f\u3081\u306b IP \u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u3063\u3066\u304d\u3066\u3044\u308b\u3082\u306e\u3082\u3042\u308b\u306e\u3067\u3059\u304c\uff08stack overflow \u3067\u306f\u5927\u62b5\u3053\u3053\u3067\u5d4c\u3063\u3066\u3044\u307e\u3059\uff09\u3001\u6642\u306b\u5236\u9650\u304c\u5fc5\u8981\u306a\u3044\u5834\u5408\u306f\u30dd\u30fc\u30c8\u756a\u53f7\u3060\u3051\u6307\u5b9a\u3059\u308b BindServiceNameAsync \u30e1\u30bd\u30c3\u30c9\u3067\u5341\u5206\u3067\u3059\u3002\u3053\u306e\u3042\u305f\u308a\u306f\u3001\u5148\u306e MSDN \u306e\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u306b\u3082\u66f8\u3044\u3066\u3042\u308a\u307e\u3059\u3002<\/p>\n<h2>IE\u304b\u3089\u547c\u3073\u51fa\u3057\u3066\u307f\u308b<\/h2>\n<p>\u7c21\u5358\u306a REST \u3067\u547c\u3073\u51fa\u305b\u308b\u3088\u3046\u306b\u3057\u3066\u304a\u304f\u3068\u3001IE \u306e\u3088\u3046\u306a\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u306e\u64cd\u4f5c\u304c\u7c21\u5358\u306b\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30d6\u30e9\u30a6\u30b6\u3067\u3001\u30a2\u30c9\u30ec\u30b9\u3092\u6307\u5b9a\u3059\u308b\u3068\u3001<br \/>\n<a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2015\/05\/wpid-dworkblogimage20150509_01org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2015\/05\/wpid-dworkblogimage20150509_01thum.jpg\" border=\"0\" \/><\/a><\/p>\n<p>\u30b9\u30c8\u30a2\u30a2\u30d7\u30ea\u5074\u3067\u53d7\u4fe1\u3067\u304d\u308b<br \/>\n<a href=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2015\/05\/wpid-dworkblogimage20150509_02org.jpg\"><img decoding=\"async\" src=\"http:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2015\/05\/wpid-dworkblogimage20150509_02thum.jpg\" border=\"0\" \/><\/a><\/p>\n<p>\u3053\u308c\u306f Windows 10 \u306e\u30e6\u30cb\u30d0\u30fc\u30b5\u30eb\u30a2\u30d7\u30ea\u3067\u4f5c\u3063\u3066\u3044\u307e\u3059\u304c\u3001ARM \u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u76f4\u305b\u3070\u305d\u306e\u307e\u307e Windows IoT on RPi \u4e0a\u3067\u52d5\u304d\u307e\u3059\u3002\u3053\u306e\u3042\u305f\u308a\u306f\u3001UAP\uff08Univesal Application Platform\uff09\u306e\u6709\u5229\u306a\u70b9\u3067\u3059\u3088\u306d\u3002\u30bf\u30a4\u30c8\u30eb\u304c\u3001for WiFi \u306b\u306a\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u73fe\u5728\u306e\u3068\u3053\u308d Win IoT on RPi \u3067\u306f WiFi \u306e\u30c9\u30f3\u30b0\u30eb\u306f\u52d5\u4f5c\u3057\u307e\u305b\u3093\uff08\u30ea\u30ea\u30fc\u30b9\u6642\u306b\u306f\u52d5\u4f5c\u3059\u308b\u3068\u306e\u3053\u3068\uff09\u3002\u73fe\u72b6\u3067\u306f\u3001\u6709\u7dda LAN \u30aa\u30f3\u30ea\u30fc\u3067\u3059\u306d\u3002<\/p>\n<p>\u3068\u3044\u3046\u8a33\u3067\u3001\u3053\u308c\u3067 LAN \u7d4c\u7531\u3067 Win IoT on RPi \u3092\u5236\u5fa1\u3059\u308b\u76ee\u9014\u304c\u7acb\u3063\u305f\u306e\u3067\u3001Raspberry Pi \u304b\u3089 GPIO \u3067\u5236\u5fa1\u3092\u3059\u308b\u4ed5\u7d44\u307f\u3092\u5165\u308c\u3066\u3044\u304d\u307e\u3059\u3002\u3072\u3068\u307e\u305a\u3001\u5148\u65e5\u8cb7\u3063\u3066 Arduino \u3067\u52d5\u304b\u305b\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u30ed\u30dc\u30c3\u30c8\u30a2\u30fc\u30e0\u3092\u52d5\u304b\u3059\u65b9\u3092\u5148\u306b\u3057\u3088\u3046\u304b\u306a\u3068\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Win IoT on RPi \u3067\u306f\u3001HttpListener \u304c\u3042\u308a\u307e\u305b\u3093\u3002\u3068\u8a00\u3044\u307e\u3059\u304b\u3001Universal \u30a2\u30d7\u30ea\u81ea\u4f53\u306b\u3001System.Net.HttpListener \u304c\u306a\u3044\u306e\u3067\u3001\u4f55\u304b\u4ee3\u66ff\u6848\u3092\u8003\u3048\u306a\u3044\u3068\u3044\u3051\u307e\u305b\u3093\u3002\u3063 &hellip; <a href=\"https:\/\/www.moonmile.net\/blog\/archives\/7122\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[67,77,52],"tags":[],"class_list":["post-7122","post","type-post","status-publish","format-standard","hentry","category-raspberrypi","category-win-iot","category-winrt"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/7122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=7122"}],"version-history":[{"count":3,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/7122\/revisions"}],"predecessor-version":[{"id":7132,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/7122\/revisions\/7132"}],"wp:attachment":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=7122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=7122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=7122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}