Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2017年8月2日

データの送信 socket

3D データをアップするのに,複数のファイルを指定するのが面倒
調べてみると socket でいけそう?


利用するのは Win AP なので,MFC で良いかと思い調べると
CAsyncSocket や CSocket は適切ではないとのこと.
プログラミング Visual C++.NET Vol.2 活用編
 第28章 インターネット通信の基礎 313 ページ
 28.3.2 MFC の Winsock クラス


参考になるコードを探したが,その範囲でわかりやすかったのがここ.
http://www.katto.comm.waseda.ac.jp/~katto/
http://www.katto.comm.waseda.ac.jp/~katto/Class/GazoTokuron/code/socket.html
但し,そのままのコードではコンパイルエラーなどが少しあったので修正.
また,#ifdef _MSC_VER で一つのコードに.
sock_tcp.zip
VC 6 と DS115j でビルドし動作を確認.
ここまでの範囲では,クライアントからサーバに固定の文字列を送信.
LAN 内の PC と NAS などで相互に確認済み.


tcp_s.cpp のコードを一部修正.
 char buffer[BUFFER_SIZE+10]; // +10 の大きさに
 受信部分で
  while(1) {
    memset(&buffer,0,sizeof(buffer)) ; // バッファのクリアを追加
    numrcv = recv(dstSocket, buffer, BUFFER_SIZE, 0);
    …
    }


サーバ側の tcp_s.exe を実行.
次の様な html を用意して,ブラウザで開く.
 <!DOCTYPE html>
   <html lang=”ja” >
   <head >
    <meta charset=”UTF-8″ />
    </head>
   <body >
    <form action=”http://localhost:9876/” method=”post” enctype=”multipart/form-data”>
     <input type=”file” name=”fname”>
     <input type=”submit” value=”upload”>
     </form>
    </body>
   </html>
 何も指定せずに「upload」.


C:\…\Iwao>”C:\…\tcp\tcp_s\Release\tcp_s.exe”
Waiting for connection …
Connected from 127.0.0.1
received: POST / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, appli
cation/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/ms
received: word, */*
Referer: http://ds115j/Test/test_up/test_up.htm
Accept-Language: ja
Content-Type: multipart/form-data; boundary=—————————7e13a71ce4098a
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows N
received: T 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Host: localhost:9876
Content-Length: 195
Connection: Keep-Alive
Cache-Control: no-cache
 
—————————
received: –7e13a71ce4098a
Content-Disposition: form-data; name=”fname”; filename=””
Content-Type: application/octet-stream
  
  
—————————–7e13a71ce4098a–
  
  
C:\…\Iwao>


ClassicASP や ASP.NET でのファイルのアップロード
 ASP を使用して Web サーバーにファイルをアップロードする方法
 IIS7 ファイルアップロード用ページを簡単に作成する方法
ASP.NET の方は動作確認済み.


http://www.geekpage.jp/
http://www.geekpage.jp/programming/winsock/

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。