import java.net.*;
import java.io.*;
public class TCPServer{
public static void main(String[] args) throws Exception{
ServerSocket s=new ServerSocket(1211);
Socket ss=s.accept();
DataInputStream dis=new DataInputStream(ss.getInputStream());
ServerThreadReader r1=new ServerThreadReader(dis);
r1.start();
DataOutputStream dos=new DataOutputStream(ss.getOutputStream());
ServerThreadWriter w1=new ServerThreadWriter(dos);
w1.start();
}
}
//进程读客户端的数据
class ServerThreadReader extends Thread{
private DataInputStream dis;
public ServerThreadReader(DataInputStream dis){
this.dis=dis;
}
public void run(){
// DataInputStream dis=new DataInputStream(ss.getInputStream());
String msg=null;
while(true){
try{
msg=dis.readUTF();
System.out.println("Client:"+msg);
if(msg.equals("bye")){
System.out.println("Client退出拉!Server也要退出啦!");
System.exit(0);
}
}catch(Exception e){
System.out.println("出错啦!");
System.out.println(e);
System.exit(-1);
}
}
}
}
//进程发送数据
class ServerThreadWriter extends Thread{
private DataOutputStream dos;
public ServerThreadWriter(DataOutputStream dos){
this.dos=dos;
}
public void run(){
// DataOutputStream dos=new DataOutputStream(ss.getOutputStream());
BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
String msg=null;
while(true){
try{
msg=in.readLine();
dos.writeUTF(msg);
if(msg.equals("bye")){
System.out.println("Server退出!");
dos.close();
System.exit(0);
}
}catch(Exception e){
System.out.println("出错啦!");
System.exit(-1);
}
}
}
}
import java.net.*;
import java.io.*;
public class TCPClient{
public static void main(String[] args) throws Exception{
Socket s=new Socket("127.0.0.1",1211);
DataInputStream dis1=new DataInputStream(s.getInputStream());
ClientThreadReader tr=new ClientThreadReader(dis1);
tr.start();
DataOutputStream dos1=new DataOutputStream(s.getOutputStream());
ClientThreadWriter tw=new ClientThreadWriter(dos1);
tw.start();
}
}
//thread to read!
class ClientThreadReader extends Thread{
private DataInputStream dis;
public ClientThreadReader(DataInputStream dis){
this.dis=dis;
}
public void run(){
// dis=new DataInputStream(s.getInputStream());
String msg;
try{
while(true){
msg=dis.readUTF();
System.out.println("Server:"+msg);
if(msg.equals("bye")){
System.out.println("Server退出!Client也要退出啦!");
System.exit(0);
}
}
}catch(Exception e){
System.out.println("出错啦!");
System.exit(-1);
}
}
}
//thread to write
class ClientThreadWriter extends Thread{
private DataOutputStream dos;
public ClientThreadWriter(DataOutputStream dos){
this.dos=dos;
}
public void run(){
// DataOutputStream dos=new DataOutputStream(s.getOutputStream());
BufferedReader bw=new BufferedReader(new InputStreamReader(System.in));//读入键盘输入的数据! 霸气!!!
String msg;
try{
while(true){
msg=bw.readLine();
dos.writeUTF(msg);
if(msg.equals("bye")){
System.out.println("Client主动退出!");
System.exit(0);
}
}
}catch(Exception e){
System.out.println("出错啦!");
System.exit(-1);
}
}
}