package socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
@classname:soccketDemo
@author:aionbo
@date:上午10:35:40
@work:
*/
public class Server {
private ServerSocket server;
private Socket socket;
public Server() throws IOException{
server=new ServerSocket(9595);
}
public void service(){
System.out.println("server start...");
while(true){
try {
socket =server.accept();
TcpThread t=new TcpThread(socket);
System.out.println(t.getName());
t.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
new Server().service();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class TcpThread extends Thread{
Socket socket;
public TcpThread(Socket s){
socket=s;
}
public String echo(String str){
return "hello:"+str;
}
@Override
public void run() {
try{
System.out.println("连接成功,IP地址:"+socket.getInetAddress()+" 端口:"+socket.getPort());
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF8"));
BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF8"));
while(true){
String str=br.readLine();
if(str.equals("exit")){
bw.close();
br.close();
socket.close();
break;
}
System.out.println(str);
Thread.sleep(100);
bw.write(echo(str)+"\r\n");
bw.flush();
}
} catch (IOException e) {
System.out.println("客户端关闭");
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
new ClientThread().start();;
}
}
class ClientThread extends Thread{
Socket socket;
ClientThread() throws UnknownHostException, IOException{
socket=new Socket("127.0.0.1",9595);
}
public void run(){
try {
@SuppressWarnings("resource")
BufferedReader brr=new BufferedReader(new InputStreamReader((System.in),"UTF8"));
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF8"));
BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF8"));
while(true){
String str=brr.readLine();
bw.write(str+"\r\n");
bw.flush();
if(str.equals("exit")){
brr.close();
br.close();
break;
}
Thread.sleep(100);
System.out.println(br.readLine());
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
System.out.println("服务器未启动");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}