JAVA入門から進級(十三)——Tcp/ip通信の実現


需要:サーバーに入力した小文字を大文字に変換し、クライアントを印刷するサイズ変換器をシミュレートします.
package Intenetprogress;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;



public class Tcpipclientbuilde2 {
public static void main(String []args) throws IOException, IOException
{
	/*
	 *      
	 * 1,               
	 * 2.      ,            
	 * 3.                   
	 * 4       ,           
	 */
	//1       
	Socket s=new Socket(InetAddress.getLocalHost(),10000);
	//2                      ,            
	//       ,       
	BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
	//3①          
	   //②  socket     ,              
	PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
	//          
	BufferedReader bfrin=new BufferedReader (new InputStreamReader(s.getInputStream());
	String str=null;
	while((str=bfr.readLine())!=null)
	{
		if(str.equals("over"))
			break;
		pw.println(str);
		String test=bfrin.readLine();
		System.out.println(test);
		
	}
	s.close();
}
}

サービス:
package Intenetprogress;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPipservebuilde2 {
public static void main(String []args)
{
	/*
	 *   
	 * 1,     socket 
	 * 2.       
	 * 3.           ,           
	 * 4.                  
	 * ①         
	 * ②    
	 */
	ServerSocket ss=new ServerSocket(10000);
	Socket s=ss.accept();
	BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream());
    PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
	String line=null;   
    while((line=br.readLine())!=null)
    {
    	System.out.println(line);
    	pw.println(line.toUpperCase());
    }
    s.close();
    ss.close();
}
}

要点1 PrintWriterストリームはバイトまたは文字ストリームオブジェクトを受け入れることができ、printlnメソッドには複数のパラメータがあります.出力のデータ型が変わらないことを保証できます.
②readlineメソッドはブロッキングプラグメソッドであり、改行タグを読み取るときのみデータを返す③printwriterのprintlnメソッドではprint()が自動的に末尾に呼び出され、print()は1回のリターンを行うprintwrite構造メソッドにtrueを加えるとprintlnなどのメソッドの後にflush④出力を呼び出すたびにリフレッシュを覚え、そうでなければストリームのバッファにのみ保存され、転送されていません