- ソケットは何ですか
コンピュータ通信の分野では、ソケットは、コンピュータ間で「ソケット」として翻訳される通信に規則又は一つの方法。この規則ソケットにより、コンピュータが他のコンピュータからデータを受信することができ、また、他のコンピュータにデータを送信することができます。
ソケットは、Unixの起源、およびUnix / Linuxは、あなたが「オープンオープン- >読み取り書き込み/読み出し- >クローズクローズ」を使用することができ、「すべてはファイルである」という基本理念の一つである動作モードを。
ソケット
TCP / IPプロトコル、できる唯一のIPアドレスを介して、「IPアドレス+ TCPまたはUDPポート番号」、ソケット用の「IPアドレス+ TCPまたはUDPポート番号」に一意の識別子、ネットワーク通信処理においてホスト、プラス上位スローガンを決定することのいずれかを一意あなたが通信を終了する目的を達成できるように、プロセスを識別します。
TCPプロトコルでは、二つのプロセス(クライアントおよびサーバー)それぞれの確立は、ソケットペアが一意の接続を識別するために、2つのソケットで構成され、ソケット接続が特定されています。TCPは、それほど頻繁にファイル転送システムで使用される、接続指向の信頼性の高いサービスですが、TCPは、接続遅延を確立している接続の信頼性を確保するために経験「3ウェイハンドシェイク」、「4波」が必要です。遅延UDPサービスのための高度な要求非接続指向のサービス、音声通話、などと共通のビデオ通話のためのとは対照的に。
スリーウェイハンドシェイク
手を振っ四
ソケット自体は、「容器」手段であり、従って、1つのネットワーク接続、ソケットAPIと呼ばれるTCP / IPプロトコルインタフェース用に設計されたアプリケーション層のプログラムの間の関係を記述するために使用されます。
私の理解では、ソケットは、モデルの実現であるということです:ソケットは特別なファイルで、そのうちのいくつかのオペレーティング・ソケット機能は(読み取り/書き込みIO、オープン、クローズ)が行われます。
ソケット()関数が返すソケット整数後続の接続の確立、データ転送を記述子と他の動作はソケットによって達成されます。
ソケット()関数が返すソケット整数後続の接続の確立、データ転送を記述子と他の動作はソケットによって達成されます。
- Socket的应用
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
那么Socket提供了那些函数呢?
使用socket()函数创建套接字
int socket(int af, int type, int protocol);
服务器端要用 bind() 函数将套接字与特定的IP地址和端口绑定起来
int bind(int sock, struct sockaddr *addr, socklen_t addrlen);
connect() 函数用来建立连接
int connect(int sock, struct sockaddr *serv_addr, socklen_t addrlen);
通过** listen() 函数**可以让套接字进入被动监听状态
int listen(int sock, int backlog);
通过 accept() 函数来接收客户端请求
int accept(int sock, struct sockaddr *addr, socklen_t *addrlen);
- Java - Hello/Hi聊天程序
服务器端
1.服务器端用ServerSocket类来创建socket对象。
2.使用accept方法监听
3.建立连接后使用输入输出流进行聊天
4.释放资源
客户端:
1.使用Socket类创建爱你客户端的Socket对象
2.通过IP地址和端口号建立连接
3.通过输入输出流进行通信
4.释放资源