package chat;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
private Socket socket;
public Client() throws UnknownHostException, IOException {
System.out.println("与服务端连接中...");
socket = new Socket("localhost", 8090);
System.out.println("连接成功");
}
public void start() {
Scanner console = new Scanner(System.in);
try {
//启动读取服务器发过来信息的线程
ServerHandler server = new ServerHandler();
Thread t = new Thread(server);
t.start();
//把内容写出去输送到服务器
OutputStream out = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8");
PrintWriter pw = new PrintWriter(osw, true);
String message = null;
while (true) {
message = console.nextLine();
pw.println(message);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
console.close();
}
}
public static void main(String[] args) {
try {
Client client = new Client();
client.start();
} catch (IOException e) {
System.out.println("客服端运行失败");
}
}
//读取服务器发送过来的信息
class ServerHandler implements Runnable {
public void run() {
try {
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String message = null;
while ((message = br.readLine()) != null) {
System.out.println(message);
}
} catch (Exception e) {
}
}
}
}