TCP通信-C/SのSocketとServer Socket
3252 ワード
クライアントクラス:Socketクラス TCP通信のクライアント:サーバに接続要求を送信、サーバにデータを送信、サーバのデータを読み出し、2回IOストリーム java.lang.Object継承者java.net.Socket 構築方法: Socket(String host,int port)は、ストリームソケットを作成し、指定したホスト上の指定したポート番号に接続します.パラメータ:String host:サーバホスト名/IPアドレスint port:サーバのポート番号 メンバーメソッド: OutputStream getOutputStream()は、このソケットの出力ストリームを返します. InputStream getInputStream()は、このソケットの入力ストリームを返します. void close()クローズソケット 注意: クライアントがサーバ側と対話する場合は、Socketで提供するネットワークストリームを使用する必要があり、自分で作成したストリームオブジェクト を使用することはできません.クライアントSocketオブジェクトを作成すると、TCPプロトコルを使用してサーバと接続パスが確立され、サーバが起動しないと例外が放出されます.
サーバクラス:ServerSocketクラスServerSocketクラス TCP通信のサーバ側:クライアントの要求を受け、クライアントから送信データを読み出し、クライアントにデータを書き込み返し、IOストリームを2回行い、ずっと待機状態である . java.lang.Object継承者java.net.ServerSocket 構築方法: ServerSocket(int port)特定のポートにバインドされたサーバソケットを作成し、オペレーティングシステムのランダムな割り当てを設定せずに通信できません.
メンバーメソッド Socket accept()は、このソケットへの接続をリスニングし、受け入れます.
注意:サーバ側は、どのクライアントが要求するサーバであるかを知る必要があることを明確にしなければならないので、accept()メソッドを使用して要求されたクライアントオブジェクトSocket を取得することができる.
サーバクラス:ServerSocketクラスServerSocketクラス
package cn.learn.web;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class client {
public static void main(String[] args) throws IOException {
//1. Socket, IP
Socket socket = new Socket("127.0.0.1",8020);
//2. Socket getOutputStream() OutputStream
OutputStream outputStream = socket.getOutputStream();
//3. write ,
outputStream.write(" ".getBytes());
//4. Socket getInputStream() InputStream
InputStream clientIn = socket.getInputStream();
//5. InputStream read() ,
byte[] bytes = new byte[1024];
int len =clientIn.read(bytes);
//
System.out.println(new String(bytes,0,len));
//6. , Socket IO
socket.close();
}
}
package cn.learn.web;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
//1. ,
ServerSocket server = new ServerSocket(8020);
//2. serverSocket accept, Socket( )
Socket socket1 = server.accept();
//3. Socket getInputStream() InputStream
InputStream serveIn = socket1.getInputStream();
//4. serveIn read,
byte[] bytes = new byte[1024];
//
int len = serveIn.read(bytes);
//
System.out.println(new String(bytes,0,len));
//5. Socket getOutputStream() OutputStream
OutputStream serverOut = socket1.getOutputStream();
//6. serverOut write
serverOut.write(" ".getBytes());
//7. socket1 server
server.close();
socket1.close();
}
}