客户端:

package com.lzx.socket;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class SocketClient {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
final Socket socket = new Socket("127.0.0.1", 10000);

//回复服务端
new Thread(){
public void run() {
try {
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String readline = in.readLine();
System.out.println(readline);
while(true){
out.println(readline);
System.out.println(" client send: " + readline);
readline = in.readLine();
if(readline.equals("bye"))
break;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();


new Thread(){
public void run() {
//获得客户端发来的数据
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
System.out.println("Receive from server : " + reader.readLine());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();


}

}


服务端:

package com.lzx.socket;

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 SocketServer {

public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(10000);
final Socket socket = server.accept();

new Thread(){
public void run() {
//获得客户端发来的数据
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
System.out.println("Receive from client : " + reader.readLine());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();

new Thread(){
public void run() {
try {
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String readline = in.readLine();
System.out.println(readline);
while(true){
out.println(readline);
System.out.println(" server send: " + readline);
readline = in.readLine();
if(readline.equals("bye"))
break;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}

}