JAVA入門から進級(十三)——Tcp/ip通信の実現
2332 ワード
需要:サーバーに入力した小文字を大文字に変換し、クライアントを印刷するサイズ変換器をシミュレートします.
サービス:
要点1 PrintWriterストリームはバイトまたは文字ストリームオブジェクトを受け入れることができ、printlnメソッドには複数のパラメータがあります.出力のデータ型が変わらないことを保証できます.
②readlineメソッドはブロッキングプラグメソッドであり、改行タグを読み取るときのみデータを返す③printwriterのprintlnメソッドではprint()が自動的に末尾に呼び出され、print()は1回のリターンを行うprintwrite構造メソッドにtrueを加えるとprintlnなどのメソッドの後にflush④出力を呼び出すたびにリフレッシュを覚え、そうでなければストリームのバッファにのみ保存され、転送されていません
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④出力を呼び出すたびにリフレッシュを覚え、そうでなければストリームのバッファにのみ保存され、転送されていません