TCP通信程序:
客服段的程序:
package com.practice03; import java.io.*; import java.net.Socket; public class ClientDemo { public static void main(String[] args) throws IOException { Socket s = new Socket("192.168.0.100", 10086); BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //getOutputStream是字节输出流, 而BufferedWriter是字符缓冲流,因此借助OutputStreamWriter转换流将字节流变成字符流 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); String line; while((line = bf.readLine())!= null){ if(line.equals("886")) break; bw.write(line);//采取字符缓冲输出流时,可直接写入字符 而不用将其变成getBytes()再写入 // bw.newLine(); //BufferedWriter的独有方法 bw.flush(); } // InputStream is = s.getInputStream(); // byte[] bys = new byte[1024]; // int len = is.read(bys); // System.out.println("客服端接收到服务器端的反馈:" + new String(bys, 0, len)); s.close(); } }
服务器端的程序:
package com.practice03; import jdk.internal.util.xml.impl.Input; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class ServerDemo { public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(10086); Socket s = ss.accept(); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); BufferedWriter bw = new BufferedWriter(new FileWriter("./prac.txt")); String line; while ((line = br.readLine())!= null){ bw.write(line); bw.newLine(); bw.flush(); // System.out.println("服务器接受到:" + line); } bw.close(); ss.close(); } }
以上均采用字符缓冲流实现,但传输的为图片等其他形式,则不可采用字符流,采用字节流