Javaネットワークプログラミングノート4


SocketとServerSocketでは,ネットワークプログラミングはSocketの作成,Socketに接続した入力ストリームのオープン,出力ストリームのオープンに分けられ,Socketをプログラミングし,Socketを閉じる.
Socketの作成
機能的なSocketの作業手順には、次の4つのステップがあります.
1、Socketを作成します.
2.Socketに接続された入出力ストリームを開きます.
3、一定のプロトコルに従ってSocketを読み書きする.
4、Socketを閉じる
Java.netパッケージでは、クライアントまたはサーバSocket接続の両端を表すSocketとServer Socketの2つのクラスが定義されています.
クラスSocketの構築方法は次のとおりです.
Socket(inetAddress address,int port)
Socket(inetAddress address,int port,boolean stream)
Socket(String host,int port)
Socket(String host,int port,boolean stream)
Socket(SocketImp impl)
Socket(String host,int port,inetAddress localAddr,int localport)
Socket(inetAddress address,int port,inetAddress localAddr,int localport)
パラメータaddressはIPアドレスを表し、hostはホスト名を表し、portはポート番号を表し、streamはSocketがストリームかデータレポートかを示すために使用され、localPortはローカルホストのポート番号を表し、localAddrはローカルとそのアドレスであり、implはSocketの親である.
ServerSocketの構築方法は次のとおりです.
ServerSocket(int port)
ServerSocket(int port,int backlog)
ServerSocket(int port,int backlog,InetAddress bindAddr)
パラメータbindAddrはネイティブアドレスを表します.
SocketとServerSocketクラスライブラリはjava.netパッケージにあり、ServerSocketはサーバ側で使用され、Socketはネットワーク接続を確立する際に使用されます.接続に成功すると、両端にSocketインスタンスが生成され、必要なセッションが完了します.
Socketで一般的に使用されるメソッドには、主に接続が受け入れられ、クライアントのSocketオブジェクトインスタンスが返されるまで「ブロック」を生成するAcceptメソッドがあります.getInputStreamメソッドは、ネットワーク接続入力を取得し、InputStreamオブジェクトのインスタンスを返します.getoputStreamメソッドを使用して、OutputStreamインスタンスを取得します.
クライアントとサーバの通信を参照:
サービス:
<span style="font-size:18px;">public class Server {

	public static void main(String[] args) {
		ServerSocket ss;
		try {
			ss = new ServerSocket(30000);
			while(true){
				Socket socket=ss.accept();
				OutputStream outputStream=socket.getOutputStream();
				InputStream inputStream=socket.getInputStream();
				BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));
				String request=br.readLine();
				System.out.println(request);
				socket.close();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}</span>

クライアント:
<span style="font-size:18px;">public class Client {

	public static void main(String[] args) {
		try {
			Socket socket=new Socket("192.168.120.112",30000);
			OutputStream outputStream=socket.getOutputStream();
			InputStream inputStream=socket.getInputStream();	
			PrintStream printStream=new PrintStream(outputStream);
			printStream.print("Client--->");
			socket.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}</span>

転載は出典を明記してください.http://blog.csdn.net/hai_qing_xu_kong/article/details/42651911    感情コントロール