服务端
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ServerTest {
public static void main(String[] args) throws IOException {
Server server = new Server("8888");
server.start();
}
}
class Server{
private String post;
private ServerSocket serverSocket;
private Scanner input;
public Server(String post) {
this.post = post;
init();
}
public void init(){
try {
serverSocket=new ServerSocket(Integer.valueOf(post));
input=new Scanner(System.in);
} catch (IOException e) {
e.printStackTrace();
}
}
public void start() throws IOException {
while(true){
System.out.println("等待客户端连接。。。。");
Socket socket = serverSocket.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream ps = new PrintStream(socket.getOutputStream());
System.out.println("连接成功!。。。。");
Channel channel = new Channel(socket, ps, reader);
System.out.println("创建信道成功!。。。");
}
}
private class Channel {
private Socket socket;
private PrintStream ps;
private BufferedReader reader;
public Channel(Socket socket, PrintStream ps, BufferedReader reader) {
this.socket = socket;
this.ps = ps;
this.reader = reader;
new Send().start();
new Receive().start();
}
class Send extends Thread {
@Override
public void run() {
while (true) {
System.out.println("等待输入中。。。");
String str="Hello World!";
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(!str.trim().equals("")){
try {
ps.println(str);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
class Receive extends Thread {
@Override
public void run() {
while (true) {
try {
System.out.println("等待接收中。。。");
System.out.println("来自客户端的信息:"+reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
客户端
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class ClientTest {
public static void main(String[] args) {
Client client = new Client("127.0.0.1", "8888");
client.start();
}
}
class Client{
private String host;
private String post;
private Socket socket;
private PrintStream ps;
private BufferedReader reader;
private Scanner input;
public Client(String host, String post) {
this.host = host;
this.post = post;
init();
}
public void init(){
try {
socket = new Socket(host, Integer.valueOf(post));
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
ps = new PrintStream(socket.getOutputStream());
input=new Scanner(System.in);
System.out.println("连接成功。。。");
} catch (IOException e) {
e.printStackTrace();
}
}
public void start(){
new Send().start();
new Receive().start();
}
private class Send extends Thread{
@Override
public void run() {
while(true){
System.out.println("等待输入中。。。");
String str = input.nextLine();
if(!str.trim().equals("")){
try {
ps.println(str);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
private class Receive extends Thread{
@Override
public void run() {
while(true){
try {
System.out.println("等待接收中。。。");
System.out.println("来自服务器的信息:"+reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}