はじめにプログラミングソケット

ディレクトリ

この記事では、このような非必要など全くコード、研究ノート、非深さの調査ではありません、ご容赦ください。

ああ、ここで良いをとっている:Linux用SOCKET詳細なプログラミングを


背景

ネットワークへのBee'jガイドは、プログラミング:それは英語の資料を読んで(約一週間、私はあまりゴミだった)長い時間がかかった[1] 「TCP / IP Cでソケット:そこの本もある -プログラマのための実践ガイド」 およびPPT:「にプログラミングソケットの概要 TCP / IPを使用してC」は、 後者二つは、それはまた古いたいが、読んでいません、すべての後、私はむしろのIPv4よりも、IPv6ので使用したいです。[ 更新は、今本の第二版は、IPv6、中国語の翻訳の内容に追加されたこと:TCP / IPソケットプログラミング(C言語) ]
実際には、学部は、本ネットワークを学習した、ネットワークが最も重要ISOではありません/ OSIが、TCP / IP、すべての後、先生によると7人の小人に対応し、ISO / OSIが出てくる酒に酔った人のグループたいさ、言った[2]と、最終的には、後半のTCP / IPのためのデファクトスタンダードで、さえによってISO / OSIは複雑すぎるためにも失敗し、来ました。

財団

TCP / IP、パッケージの抽象化層では、下位層は、上部透明上層部は、より低いデータパケットフォーマットであるに見えない、ヘッダは、いくつかの制御情報です。
TCP / IP
アプリケーション層、トランスポート層の上の下に位置するソケットプログラミング。データグラムソケットに分割ストリームソケットと、実際には、トランスポート層、TCPとUDPで2つのプロトコルに対応しています。それはDCTCP、このような高度なものはそれを行う方法である場合しかし、問題は、来ますか?それについて後で話します。
C / Sの構造は、二つのアーキテクチャは、実際には、がありますP2PとC / Sこれの利点と欠点を持っていますが、この記事では、唯一のC / Sを伴う、B / Sは、C / Sの特殊なケースで、P2P私が勉強していません。C / Sの構造は、次のようになります。
クライアントとサーバの対話
ちなみに、著者は* nixのプラットフォームをやっている、Windowsのみ、以下に言及します。Winsock.h

プロセス

ソケットプログラミングプロセスは本当に複雑ではありません。
ソケット手順
このように、全体のプロセスはソケット、その後、バインド(バインド)を作成するために、あること、出てきた、実際には、接続())(バインド代わりに使用することができますが、違いは()バインドポートにある、バインド、および接続が使用するポートを気にしない、もちろん、パラメータは、(接続、それを渡された)プログラマが結合していないポートが結合見つけましょう。サーバポートの接続要求をリッスンし、残りは、使用の送受信機能(コネクションUDPを使用して)、送信されたデータを受信し、そしてここでストリームソケット(TCP接続)データグラムソケットを指摘しているが異なっています。最後に、ソケットを閉じることを忘れないでください。
関数
実際には、使用方法のように、様々なパラメータが必要とされている見ることとなっている主な機能の残りの部分への記事の最後から二番目の章のマニュアルページと、投稿されていません。理論的には、以下のクライアント/サーバープログラムを与えるが、私は必要性を感じないはずです。私の接続ダウン[1:1]過去に、多くの、投稿されていませんがあります。
しかし、何がヘッダファイルの最大数を使用してリストすることができます。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>  	
 	
#include <unistd.h>
#include <sys/socket.h>	
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>

あなたは時間があれば、私は芸術に追加するために戻ってくるために多くの時間です。

参照


  1. プログラミングネットワークへBeejガイド ↩︎を ↩︎

  2. 多くの人がだまさ正確にどのようにOSIモデル? ↩︎

おすすめ

転載: www.cnblogs.com/basilguo/p/basic-socket-programming-in-C.html