1.无论服务端还是客户端都是先发送后接收
2.发送使用PrintWriter流
3.接收使用BufferedReader流
服务端:
package com.ittuzi;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private static int port=9999;
private static ServerSocket serverSocket;
private static Socket socket;
private static OutputStream outputStream;
private static PrintWriter printWriter;
private static InputStream inputStream;
private static InputStreamReader inputStreamReader;
private static BufferedReader bufferedReader;
private static String receiveInfo;
public static void main(String[] args) {
try {
serverSocket=new ServerSocket(port);
//accept()方法监听客户端连接,客户端连接上,就会返回一个Socket
socket=serverSocket.accept();
//获取输出流:向客户端输出信息
outputStream=socket.getOutputStream();
printWriter=new PrintWriter(outputStream);
//输出信息
printWriter.println("我是服务端");
printWriter.flush();
//获取输入流:获取客户端信息
inputStream=socket.getInputStream();
inputStreamReader=new InputStreamReader(inputStream);
bufferedReader=new BufferedReader(inputStreamReader);
//输出客户端的信息
while((receiveInfo=bufferedReader.readLine())!=null){
System.out.println(receiveInfo);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
printWriter.close();
outputStream.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端:
package com.ittuzi;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
private static Socket socket;
private static OutputStream outputStream;
private static PrintWriter printWriter;
private static InputStream inputStream;
private static InputStreamReader inputStreamReader;
private static BufferedReader bufferedReader;
private static String IP="127.0.0.1";
private static int port=9999;
private static String receiveInfo;
public static void main(String[] args) {
try {
socket=new Socket(IP, port);
//获取输出流:向服务器发送信息
outputStream=socket.getOutputStream();
printWriter=new PrintWriter(outputStream);
printWriter.println("我是客户端");
printWriter.flush();
//获取输入流:从服务器获取数据
inputStream=socket.getInputStream();
inputStreamReader=new InputStreamReader(inputStream);
bufferedReader=new BufferedReader(inputStreamReader);
//
while((receiveInfo=bufferedReader.readLine())!=null) {
System.out.println(receiveInfo);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
printWriter.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}