1.客户端代码
1 package com.gylhaut.socket;
2
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.io.InputStreamReader;
7 import java.io.OutputStream;
8 import java.io.PrintWriter;
9 import java.net.Socket;
10 import java.net.UnknownHostException;
11
12 /**
13 *
14 * 客户端Socket
15 *
16 */
17 public class Client {
18 public static void main(String[] args) {
19 try {
20 //1.创建客户端Socket, 指定服务器地址和端口
21 Socket socket = new Socket("localhost",8888);
22 //2.获取输出流,向服务器端发送信息
23 OutputStream os =socket.getOutputStream();//字节输出流
24 PrintWriter pw = new PrintWriter(os);//将输出流包装为打印流
25 pw.write("用户名:admin; 密码:123");
26 pw.flush();
27 socket.shutdownOutput();//关闭输出流
28 String info = null;
29 InputStream is = socket.getInputStream();
30 InputStreamReader isr = new InputStreamReader(is);
31 BufferedReader bReader = new BufferedReader(isr);
32 while ((info = bReader.readLine())!= null) {//循环读取客户端信息
33 System.out.println("我是客户端,服务器说:"+ info);
34 }
35 //
36 bReader.close();
37 isr.close();
38 is.close();
39 pw.close();
40 os.close();
41 socket.close();
42 } catch (UnknownHostException e) {
43 e.printStackTrace();
44 } catch (IOException e) {
45 e.printStackTrace();
46 }
47 }
48 }
2.服务端代码
1 package com.gylhaut.socket; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.InputStreamReader; 7 import java.io.OutputStream; 8 import java.io.PrintWriter; 9 import java.net.ServerSocket; 10 import java.net.Socket; 11 /* 12 * 基于TCP协议的Socket通信,实现用户登录 13 * 服务器端 14 */ 15 public class Server { 16 public static void main(String[] args){ 17 try { 18 //1.创建一个服务器端的Socket,即ServerSocket,指定绑定的端口,并监听客户端 19 ServerSocket serverSocket = new ServerSocket(8888); 20 //2.调用accept()方法开始监听,等待客户端的连接 21 System.out.println("***服务器即将启动,等待客户端的连接***"); 22 Socket socket = serverSocket.accept(); 23 //3.获取输入流,并读取客户端信息 24 InputStream is = socket.getInputStream();//字节输入流 25 InputStreamReader isr = new InputStreamReader(is);//将字节流转换为字符流 26 BufferedReader bReader = new BufferedReader(isr); 27 String info = null; 28 while ((info = bReader.readLine())!= null) {//循环读取客户端信息 29 System.out.println("我是服务器,客户端说:"+ info); 30 } 31 socket.shutdownInput();//关闭输入流 32 //4.获取输出流,响应客户端的请求 33 OutputStream os = socket.getOutputStream(); 34 PrintWriter pWriter = new PrintWriter(os);//包装为打印流 35 pWriter.write("欢迎您!"); 36 pWriter.flush();//调用flush 方法将刷新缓存 37 38 //5.关闭资源 39 pWriter.close(); 40 os.close(); 41 bReader.close(); 42 isr.close(); 43 is.close(); 44 socket.close(); 45 serverSocket.close(); 46 } catch (IOException e) { 47 e.printStackTrace(); 48 } 49 } 50 }
原文:http://www.cnblogs.com/gylhaut/p/5270012.html