服务端代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServerBin {
public static void main(String[] args) {
MyServerBin myServerBin=new MyServerBin();
myServerBin.startAction();
}
public void startAction(){
ServerSocket serverSocket=null;
try {
serverSocket=new ServerSocket(1234);
while(true){
Socket socket=serverSocket.accept();
new Thread(new MyRuns(socket)).start();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (serverSocket!=null) {
serverSocket.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
class MyRuns implements Runnable{
Socket socket;
BufferedReader reader;
BufferedWriter writer;
public MyRuns(Socket socket) {
super();
this.socket = socket;
}
@Override
public void run() {
try {
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String lineString="";
while( !(lineString=reader.readLine()).equals("bye") ){
System.out.println("客户端:"+socket.hashCode()+"==="+lineString);
writer.write("服务器返回:"+lineString+"\n");
writer.flush();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (reader!=null) {
reader.close();
}
if (writer!=null) {
writer.close();
}
if (socket!=null) {
socket.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
}
客户端代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class MyClickBin {
public static void main(String[] args) {
MyClickBin myClickBin=new MyClickBin();
myClickBin.startAction();
}
void readSocketInfo(BufferedReader reader){
new Thread(new MyRuns(reader)).start();
}
class MyRuns implements Runnable{
BufferedReader reader;
public MyRuns(BufferedReader reader) {
super();
this.reader = reader;
}
@Override
public void run() {
try {
String lineString="";
while( (lineString = reader.readLine())!=null ){
System.out.println(lineString);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void startAction(){
Socket socket=null;
BufferedReader reader=null;
BufferedWriter writer=null;
BufferedReader reader2=null;
try {
socket=new Socket("127.0.0.1", 1234);
reader = new BufferedReader(new InputStreamReader(System.in));
reader2=new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
readSocketInfo(reader2);
String lineString="";
while(!(lineString=reader.readLine()).equals("exit")){
writer.write(lineString+"\n");
writer.flush();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (reader!=null) {
reader.close();
}
if (writer!=null) {
writer.close();
}
if (socket!=null) {
socket.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}