/*
* 转换服务端分析:
*
* 1.需要ServerSocket服务
*
* 2.获取Socket对象,为了获取客户端发来的数据
*
* 3.源: Socket,读取客户端发来的需要转换的数据
*
* 4.目的:显示在控制台上
*
* 5.将数据转换成大写发给客户端
*/
package demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TextTransServer {
public static void main(String[] args) throws IOException {
//1.新建ServerSocket对象
ServerSocket ss = new ServerSocket(10004);
//2.获取客户端的Socket对象
Socket s = ss.accept();
//【附加功能】获取客户端ip
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"......connected");
//3.获取Socket的输入流,并对其装饰,此流为了读取客户端发来的数据
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
//InputStreamReader是将字节流转成字符流
//4.获取Socket的输出流,并装饰,此流为了将服务端数据反馈给客户端
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
/*
* 这里发现客户端与接收端一样的,即都需要bufIn和out这俩流,只是顺序不一样,客户端先往外输出数据到服务端,再接收服务端
* 反馈回来的数据,所以先out再bufIn;而服务端正好相反,先接收客户端数据,即bufIn,再将处理后的数据输出给客户端,即out
*/
String line = null;
while((line=bufIn.readLine())!=null){
System.out.println(line);
out.println(line.toUpperCase());
}
//关闭资源
s.close();
ss.close();
}
}
26-网络编程-14-网络编程(TCP协议-练习-文本转换服务端)
最新推荐文章于 2024-01-14 23:04:41 发布