创建服务器端serverSocketimport 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;/**
* 服务端
* @author Administrator
*
*/public class Server {
public static void main(String[] args) throws IOException { //创建一个服务器端socket,指定绑定的端口号,并监听此端口
ServerSocket serverSocket = new ServerSocket(8888); //调用accept()方法开始监听,等待客户端的连接
System.out.println("**********服务器即将启动,等待客户端的连接*************");
Socket socket = serverSocket.accept(); //获取输入流,并读取客户端信息
InputStream inp = socket.getInputStream(); //把字节流转换成字符流
InputStreamReader isr = new InputStreamReader(inp); //为字符流增加缓冲区
BufferedReader bfr = new BufferedReader(isr);
String info = null; while((info=bfr.readLine())!=null){//循环读取数据
System.out.println("客户已连接,报文内容:"+info);
}
socket.shutdownInput();//关闭输入流
//向客户端传递的信息
OutputStream ots = socket.getOutputStream();
PrintWriter pw = new PrintWriter(ots);
pw.write("欢迎使用");
pw.flush(); //关闭资源
pw.close();
ots.close();
bfr.close();
isr.close();
inp.close();
socket.close();
serverSocket.close();
}
}
客户端socketimport 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;import java.net.UnknownHostException;/**
* 客户端
* @author Administrator
*
*/public class Client {
public static void main(String[] args) { try { //创建一个客户端socket
Socket socket = new Socket("localhost",8888); //向服务器端传递信息
OutputStream ots = socket.getOutputStream();
PrintWriter pw = new PrintWriter(ots);
pw.write("服务器你好!");
pw.flush(); //关闭输出流
socket.shutdownOutput(); //获取服务器端传递的数据
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String info = null; while((info=br.readLine())!=null){
System.out.println("服务器返回报文:"+info);
} //关闭资源
br.close();
isr.close();
is.close();
pw.close();
ots.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器端输出:**********服务器即将启动,等待客户端的连接*************客户已连接,报文内容::服务器你好!
客户端输出:服务器返回报文:欢迎使用
相关文章: