使用IO和Socket服务在本地主机模拟文本转换服务器.

 

需求分析:从客户端发送文本数据到服务器端,服务器端将文本数据转换为大写后返回给客户端,而且客户端可以不断的输入进行文本转换,当客户端输入over时,转换结束.

 

客户端:键盘录入,网络输出流和读取服务器返回的输入流

1.建立服务

2.获取键盘录入

3.将数据发送给服务端

4.获取服务器端返回的转换数据

5.结束,关闭资源.

 

->创建Socket服务,并指定要连接的主机和端口

 

Java代码 复制代码 收藏代码
  1. class Client
  2. {
  3. public static void main(String[] args) throws Exception
  4. {
  5. Socket s = new Socket("localhost", 10000);
  6.  
  7. BufferedReader bufr =
  8. new BufferedReader(new InputStreamReader(System.in));
  9.  
  10. BufferedWriter bufOut =
  11. new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  12.  
  13. BufferedReader bufIn =
  14. new BufferedReader(new InputStreamReader(s.getInputStream()));
  15.  
  16. String line = null;
  17.  
  18. while((line = bufr.readLine()) != null)
  19. {
  20. if("over".equals(line))
  21. break;
  22.  
  23. bufOut.write(line);
  24.  
  25. String str = bufIn.readLine();
  26. System.out.println("Server: " + str);
  27.  
  28. }
  29. bufr.close();
  30. s.close();
  31. }
  32. }

class Client
 {
 	public static void main(String[] args) throws Exception
 	{
 		Socket s = new Socket("localhost", 10000);
 		
 		BufferedReader bufr = 
 			new BufferedReader(new InputStreamReader(System.in));
 		
 		BufferedWriter bufOut = 
 			new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
 			
 		BufferedReader bufIn = 
 			new BufferedReader(new InputStreamReader(s.getInputStream()));
 		
 		String line = null;
 		
 		while((line = bufr.readLine()) != null)
 		{
 			if("over".equals(line))
 				break;
 				
 			bufOut.write(line);
 			
 			String str = bufIn.readLine();
 			System.out.println("Server: " + str);
 				
 		}		
 		bufr.close();
 		s.close();
 	}
 }

 

 

服务器:socket读取流和socket输出流

->建立服务端的socket服务,SocketServer并监听一个端口

->通过SocketServer的方法accept,获取客户端对象.

 

 

Java代码 复制代码 收藏代码
  1. class Server
  2. {
  3. public static void main(String[] args) throws Exception
  4. {
  5. ServerSocket ss = new ServerSocket(10000);
  6.  
  7. Socket s = ss.accept();
  8. String ip = s.getInetAddress().getHostAddress();
  9. System.out.println(ip + ":" + " is connected");
  10.  
  11. BufferedReader bufIn =
  12. new BufferedReader(new InputStreamReader(s.getInputStream()));
  13.  
  14. BufferedWriter bufOut =
  15. new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  16.  
  17. String line = null;
  18. while((line = bufIn.readLine()) != null)
  19. {
  20. System.out.println(line);
  21. bufOut.write(line.toUpperCase());
  22.  
  23. }
  24.  
  25. s.close();
  26. ss.close();
  27. }
  28. }