在线求助用javaSE实现多个客户机和一个服务器在dos窗口实现通话,,本人实现不了请帮我改改 !!!本人想学会用进程编码
import java.net.*;import java.io.*;
import java.util.*;
class Thread1 extends Thread
{
BufferedWriter op;
public Thread1(BufferedWriter op){
this.op=op;
}
InputStream is=System.in;
InputStreamReader osw2=new InputStreamReader(is);
BufferedReader bw2=new BufferedReader(osw2);
public void run(){
try{
do{
System.out.println("请输入话语");
op.write(bw2.readLine());
op.newLine();
op.flush();
System.out.println("退出:n");
if(bw2.readLine().equals("n")){
break;
}
}while(true);
}catch(Exception e){
e.printStackTrace();
}
}
}
class Thread2 extends Thread
{
BufferedReader ij;
public Thread2(BufferedReader ij){
this.ij=ij;
}
public void run(){
try{
do{
String line=ij.readLine();
if(line.length()==0){
System.exit(1);
}
System.out.println(Thread.currentThread().getName()+": "+line);
}while(true);
}catch(Exception e){
e.printStackTrace();
}
}
}
class Thread3 extends Thread
{
private BufferedWriter bufferedWriter;
private BufferedReader bufferedReader;
public void setbufferedWriter(BufferedWriter bufferedWriter){
this.bufferedWriter=bufferedWriter;
}
public BufferedWriter getbufferedWriter(){
return bufferedWriter;
}
public void setbufferedReader(BufferedReader bufferedReader){
this.bufferedReader=bufferedReader;
}
public BufferedReader getbufferedReader(){
return bufferedReader;
}
public void run(){
try{
ServerSocket ss=new ServerSocket(8888);
Socket s=null;
do{
s=ss.accept();
OutputStream os=s.getOutputStream();
OutputStreamWriter osw=new OutputStreamWriter(os);
setbufferedWriter(new BufferedWriter(osw));
//bufferedWriter=new BufferedWriter(osw);
InputStream os1=s.getInputStream();
InputStreamReader osw1=new InputStreamReader(os1);
setbufferedReader(new BufferedReader(osw1));
//bufferedReader=new BufferedReader(osw1);
}while(true);
}catch(Exception e){
e.printStackTrace();
}
}
}
class Server
{
public static void main(String[] args)
{
try{
Thread3 thread3=new Thread3();
//Thread thread3=new Thread();
thread3.start();
//tttt.getChannel()
System.out.println("退出请输入Esc");
Thread1 thread1=new Thread1(thread3.getbufferedWriter());
//Thread thread1=new Thread(t1);
thread1.start();
Thread2 thread2=new Thread2(thread3.getbufferedReader());
//Thread thread2=new Thread(t2,"second");
//thread2.setName("second");
thread2.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
class Cliect
{
public static void main(String[] args)
{
try{
Scanner scan=new Scanner(System.in);
Socket sss=new Socket("127.0.0.1",8888);
InputStream os=sss.getInputStream();
InputStreamReader osw=new InputStreamReader(os);
BufferedReader bw=new BufferedReader(osw);
OutputStream os2=sss.getOutputStream();
OutputStreamWriter osw2=new OutputStreamWriter(os2);
BufferedWriter bw2=new BufferedWriter(osw2);
System.out.println("退出请输入Esc");
Thread2 ta=new Thread2(bw);
Thread thread1=new Thread(ta,"first");
//ta.setName("first");
thread1.start();
Thread1 tt=new Thread1(bw2);
Thread thread2=new Thread(tt);
thread2.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
页:
[1]