ソケットプログラム(TCP,UDP) EasyChat開発

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作 第4回 マルチスレッドとネットワーク. 今日の内容 マルチスレッド – ローディングの進捗表示とか – 処理高速化も見込めます ネットワーク通信 – 必然的にマルチスレッドを扱います.
NetAgent P2P検知技術 NetAgent.
SSH2パケットの送信処理は、finish_send_packet_special()で パケット構築と暗号化が行われた上で、
ファイアウォール 基礎教育 (4日目).
Timeout と再送 往復時間 予知が困難 他のトラフィックに依存 適応再送アルゴリズム データの採取.
Webプロキシサーバにおける 動的資源管理方式の提案と実装
第1回.
CS-B3 ネットワークプログラミング 峰野博史
TCP (Transmission Control Protocol)
「コンピュータと情報システム」 07章 インターネットとセキュリティ
ネットワーク コミュニケーション トランスポート層 TCP/UDP 6/28/07.
Windows Network Programming
インターネット メールサーバ DNSサーバ WWWサーバ ファイアウォール/プロキシサーバ クライアント.
TCPソケットプログラミング ソケットプログラミング TCP-echoのデータ通信手順
トランスポート層.
複数CPU間のための共有メモリ 小島 隆史(中央大学大学院理工学研究科 國井研究室)
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
ま と め と 補 足 ネットワークシステムⅠ 第15回.
パケットの流れ ブラウザ OS TCP IP LANアダプタ ハブ ルータ HTTPメッセージ TCP HTTP断片 TCP HTTP断片
IPv6アドレスによる RFIDシステム利用方式
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
ネットワークアプリケーションと セキュリティ
P2P方式によるオンラインゲームの研究、開発
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
第7回ネットワークプログラミング 中村 修.
UDPエコーサーバ UDP-echoサーバのプログラムモデル(Cプログラム) サーバで利用するソケット関数(Cプログラム)
インターネットの基礎知識 その3 ~TCP・UDP層編~
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
岡村耕二 トランスポート層 ソケットプログラミング 岡村耕二 情報ネットワーク.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ネットワーク技術II 第9.1課 TCP/IPプロトコルスイート
ソケットプログラム(TCP,UDP) EasyChat開発2
出典・・・基礎からわかるTCP/IPコンピューティング入門 村山公保著
インターネットにおける真に プライベートなネットワークの構築
TCP/IP入門          櫻井美帆          蟻川朋未          服部力三.
各種ルータに対応する P2P通信環境に関する研究
Ibaraki Univ. Dept of Electrical & Electronic Eng.
UDPマルチキャストチャット    空川幸司.
ネットワークプログラミング (5回目) 05A1302 円田 優輝.
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
TCP/IPとプロセス間通信 2007年1月12日 海谷 治彦.
Talkプログラムのヒント 1 CS-B3 ネットワークプログラミング  &情報科学科実験I.
DNSクエリーパターンを用いたOSの推定
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
ネットワーク・プログラミング ソケットオプションとスレッド.
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
画像情報特論 (1) - インターネット電話とインターネット放送 はじめに 電子情報通信学科 甲藤二郎
岡村耕二 TCP通信プログラム 課題と回答例 岡村耕二 情報ネットワーク.
システムプログラミング 第10回 プロセス間通信3 簡易Web server(準備) Chat プログラム 担当:青木義満、篠埜 功
岡村耕二 TCP通信プログラム 岡村耕二 情報ネットワーク.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
4.3 IPとルーティングテーブル 国際産業情報学科 2年 大竹 雅子.
TCP/IP 通信テストツール TcpTestTool by PipeKatoo!
ネットワーク・プログラミング TCPサーバ.
ネットワークプログラミング 05A1302 円田 優輝.
7月13日の演習問題・解答例 について ネットワーク長が 18、22、26、28 の場合の
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
画像情報特論 (1) - インターネット電話とインターネット放送 はじめに 電子情報通信学科 甲藤二郎
ネットワーク・プログラミング マルチタスク.
牧野ゼミ 2年 産業情報 学科 韓 憲浩(カン ケンコウ)
情報ネットワーク 岡村耕二.
TCP/IPの通信手順 (tcpdump)
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
第6章 インターネットアプリケーション 6.1 インターネットアプリケーション 6.2 Javaによるネットワーク処理 6.3 電子メール
岡村耕二 TCP通信プログラム 岡村耕二 情報ネットワーク.
Presentation transcript:

ソケットプログラム(TCP,UDP) EasyChat開発

ソケットプログラム ネットワークプログラミングの基礎にあたる バークレーソケットが原型 使用するのはWinSock(WS2_32.dll)。

2種類の接続方式 TCP/IPプロトコルには、接続型(コネクション型)と非接続型(コネクションレス型)という2種類のネットワーク通信があります。 接続型にはTCP(ストリームソケット),非接続型にはUDP(データグラムソケット)を用いる。

接続型(TCP) 持続的に接続されている。 高い信頼性をもった通信が可能 データ通信の順序どおりに通信可能 未完成のパケットを通信する 通信速度は遅め

非接続型(UDP) 継続的に接続せず、必要があるときだけ接続する。 信頼性が無い。 完成されたパケットを送る 通信順序はバラバラ 通信速度は高速

EasyChat 接続型はTCPを使う。 1:1の通信のみ サーバー、クライアント両方の機能を持ち合わせたものにする 暗号化や効率化は考えず、あくまでも一番単純な形で実装する。

ソケットの使用 WS2_32.dllの呼び出し ソケット初期化 接続 ソケットオプション設定 //WS2_32.dll if(WSAStartup(MAKEWORD(2,2),&wsadate)==SOCKET_ERROR){ return 1; } //socket my_socket=socket(AF_INET,SOCK_STREAM,0); if(my_socket==INVALID_SOCKET){ return 2; //connect re= connect(my_socket,(SOCKADDR*)&address,sizeof(SOCKADDR_IN)); if(re){ return 3; //option optval=SO_SEC_SSL; setsockopt(my_socket,SOL_SOCKET,SO_SECURE,(char*)&optval,sizeof(optval)); ソケット初期化 接続 ソケットオプション設定

TCP接続(サーバー) WS2_32.dllの呼び出し ソケット初期化 BIND(ソケットとポート連結) LISTEN //WS2_32.dll if(WSAStartup(MAKEWORD(2,2),&wsadate)==SOCKET_ERROR){ return 1; } //socket address_in.sin_addr.s_addr=inet_addr(ip); mt_socket=socket(AF_INET,SOCK_STREAM,0); if(my_socket==INVALID_SOCKET){ return 2; //bind if(bind(socket(struct aockaddr *)&address_in,sizeof(address_in)) ==SOCKET_ERROR) { return 3; //listen if(listen(socket,SOMAXCONN)==SOCKET_ERROR){ return 4; client_socket=INVALID_SOCKET; client_socket=accept(socket,(struct sockaddr*)&cs,&addresssize); WS2_32.dllの呼び出し ソケット初期化 BIND(ソケットとポート連結) LISTEN ACCEPT(接続待機)

EasyChat wait client でサーバーモードに。 最初に接続先(IP)を入力することでクライアント接続。

EasyChatのアルゴリズム ネットワークの初期化 (ソケット生成,bind) 接続待機 送信 Main関数ループ (ゲームループ) 受信スレッド (Worker Thread)

EasyChatを改良してUDPのchatプログラムも作りたい。 TCP、UDPの長所短所をよく理解してサーバー構築に生かしたい。 受信スレッドの無限ループが重いのでどうにかしたい。