import java.io.*;
import java.net.Socket;
import java.net.ServerSocket;
import java.net.SocketException;
public
class
TestServer {
public
static
void main(String[] args) {
try
{
ServerSocket s =
new
ServerSocket(8888);
Socket s1 = s.accept();
InputStream is = s1.getInputStream();
OutputStream os = s1.getOutputStream();
DataOutputStream dos =
new
DataOutputStream(os);
DataInputStream dis =
new
DataInputStream(is);
System.out.println(
"Server started!"
);
new
MyServerReader(dis).start();
new
MyServerWriter(dos).start();
}
catch
(IOException ioe) {
ioe.printStackTrace();
}
}
}
class
MyServerReader
extends
Thread {
private
DataInputStream dis;
public
MyServerReader(DataInputStream dis) {
this.dis = dis;
}
public
void run() {
String info;
try
{
while
(true) {
info = dis.readUTF();
System.out.println(
"Ta said:"
+ info);
if
(info.equals(
"bye"
) || info.equals(
"88"
)) {
System.out.println(
"Ta offline, connection's out!"
);
System.
exit
(0);
}
}
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
class
MyServerWriter
extends
Thread {
private
DataOutputStream dos;
public
MyServerWriter (DataOutputStream dos) {
this.dos = dos;
}
public
void run() {
String info;
InputStreamReader isr =
new
InputStreamReader(System.in);
BufferedReader br =
new
BufferedReader(isr);
try
{
while
(true) {
info = br.readLine();
dos.writeUTF(info);
if
(info.equals(
"bye"
) || info.equals(
"88"
)) {
System.out.println(
"Local machine Offline, application exit!"
);
System.
exit
(0);
}
}
}
catch
(IOException e) {
e.printStackTrace();
}
}
}