服务器端:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TransServer {
public static void main(String[] args) throws Exception {
/*
* 转换服务器端
* 1.serversocket对象
* 2.获取socket对象
* 3.源:读取客户端发送过来的需要转换的数据
* 4.目的:显示在控制台上
* 5.将数据转成大写发给客户端
* */
//1.
ServerSocket ss = new ServerSocket(6666);
//2.获取socket对象
Socket s = ss.accept();
//获取ip
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip+"...connected");
//3.获取socket对象的读取流,并装饰
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
//4.获取socket对象的输出流,并装饰
PrintWriter out = new PrintWriter(s.getOutputStream(),true);
String line = null;
while((line=br.readLine())!=null){
System.out.println(line);
out.println(line.toUpperCase());
out.flush();
}
br.close();
out.close();
s.close();
ss.close();
}
}
客户端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
public class TransClient {
public static void main(String[] args) throws Exception, IOException {
/**
* 客户端:
* 1.需要先有socket客户端
* 2.客户端的数据源 键盘
* 3.客户端的目的 socket
* 4.接收服务器的数据 源 socket
* 5.将数据打印在控制台
* 6.在这些流中操作的数据,都是文本数据
*
*
*/
//1.创建socket对象
Socket s = new Socket(InetAddress.getLocalHost(), 6666);
//2.获取键盘录入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//3.获取socket输出流
PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
//4.获取socket输入流 读取服务器端返回的大写数据
BufferedReader br1 = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
//发送
pw.println(line);
pw.flush();
//接收
String str = br1.readLine();
System.out.println(str);
}
s.close();
}
}
注意:先启动服务器端,再启动客户端。最后应该在客户端的控制台上输入字符。