当前位置: 代码迷 >> Java相关 >> IO问题~在线等~附源码
  详细解决方案

IO问题~在线等~附源码

热度:465   发布时间:2004-12-15 10:40:00.0
IO问题~在线等~附源码

这是个c/s的做加法的程序,client输入server计算并返回结果.

现在问题是能计算结果但client取不回来.

源码:

client~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

import java.net.*; import java.awt.*; import java.awt.event.*; import java.io.*;

class Client1 extends Frame { static private TextField taIn1,taIn2; static private TextArea taOut; static private Panel p,p1; static private Button bSub,bClr,bres; static private Label l1,l2,l3; //变量定义 public Client1(){ super("通讯程序客户端"); taIn1=new TextField("",10); taIn2=new TextField("",10); taOut=new TextArea("",10,10,TextArea.SCROLLBARS_VERTICAL_ONLY); taOut.setEditable(false); taOut.setBackground(Color.black); taOut.setForeground(Color.white); p=new Panel(); p1=new Panel(); bSub=new Button("SUBMIT"); bClr=new Button("CLEAR"); bres=new Button("RESULT"); l1=new Label("加数:"); l2=new Label("被加数:"); this.add(taOut,"North"); this.add(p1,"Center"); //框架 p1.add(l1); p1.add(taIn1); p1.add(l2); p1.add(taIn2); //输入文本框 p.add(bSub); p.add(bClr); p.add(bres); //按钮 this.addWindowListener(new MyWindowListener()); this.add(p,"South"); this.pack(); this.setSize(430,300); this.setVisible(true); } public static void main(String[] args) { Client1 gtxs=new Client1(); bSub.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s3; taOut.setText("输入的两位运算数值为:\n"+taIn1.getText()+'\t'+taIn2.getText()+'\n'); //s3= tongXun(); //taOut.setText(s3); } }); bClr.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ taOut.setText(""); taIn1.setText(""); taIn2.setText(""); } }); bres.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ // } });

}//end main public static String tongXun(){ Socket sClient; String s,s1=new String(""); BufferedWriter bw; BufferedReader br; int i=0; //变量定义 try{ sClient=new Socket("127.0.0.1",1024); bw=new BufferedWriter( new OutputStreamWriter(sClient.getOutputStream())); br=new BufferedReader( new InputStreamReader(sClient.getInputStream())); }catch(UnknownHostException e) { taOut.setText("UnknownHostException Happened."); return("UnknownHostException Happened."); } catch(IOException e) { taOut.setText("can not connect with Server."); return("can not connect with Server."); } taOut.setText("Connect Server Success."); //while(true){ try{ s=taIn1.getText()+'\n'+taIn2.getText()+'\n'; bw.write(s); bw.flush(); bw.close(); }catch(IOException e) { taOut.setText(taOut.getText()+'\n'+"write data error."); } while(i==0){ try{ while((s=br.readLine())!=null) {s1=s; i=1;} }catch(IOException e) { taOut.setText(taOut.getText()+'\n'+"read data error."); return("read error."); } }//end while 2 return(s1); //}//end while

}//end tongXun() }// end class Client1 class MyWindowListener extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(0); } }

server~~~~~~~~~~~~~~~~~~

import java.net.*; import java.io.*; import java.awt.*; import java.awt.event.*;

class Server extends Frame { static private TextArea taOut; public Server(){ super("通讯程序服务器端"); Label l=new Label("接受到的客户输入如下..."); taOut=new TextArea("",20,20,TextArea.SCROLLBARS_VERTICAL_ONLY); taOut.setEditable(false); this.addWindowListener(new MyWindowListener()); this.add(l,"North"); this.add(taOut,"Center"); this.setSize(430,300); this.setVisible(true); service(); }

public static void main(String[] args) { Server gtxs=new Server(); } // end main public static void service() { ServerSocket serverGui=null; Socket sGui; BufferedReader br; BufferedWriter bw; String[] s; s=new String[2]; s[0]=new String(); s[1]=new String(); String s1,s2=new String(); //变量定义 try{ serverGui=new ServerSocket(1024); }catch(IOException e) { taOut.setText("Server cannot be created."); System.exit(0); //return; } taOut.setText("now server is started."+'\n'); while(true) { try{ sGui=serverGui.accept(); bw=new BufferedWriter( new OutputStreamWriter(sGui.getOutputStream())); br=new BufferedReader( new InputStreamReader(sGui.getInputStream())); for(int i=0;i<=1&&(s1=br.readLine())!=null;i++) s[i]=s1; s2=plus(s); taOut.setText(taOut.getText()+"s"+s+'\n'+"s[0]:"+s[0]+'\n'+"s[1]:"+s[1]+'\n'+"s2:"+s2); bw.write("from server."); taOut.setText(taOut.getText()+"已经送回"); }catch(IOException e) { taOut.setText("cannot read from client."); return; } try{ //bw.write("from server."); bw.flush(); bw.close(); }catch(IOException e){taOut.setText("write data error.");} try{ taOut.setText(taOut.getText()+"\nserver will be closed."); sGui.close(); }catch(IOException e){taOut.setText("server closes error.");} }//end while

}//end service

static String plus(String[] ss){ float a; String s; a=Float.parseFloat(ss[0])+Float.parseFloat(ss[1]); s=Float.toString(a); return s; } } class MyWindowListener extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(0); } }

高手帮忙给看看,多谢了.在线等.................

搜索更多相关的解决方案: 源码  在线  

----------------解决方案--------------------------------------------------------
  相关解决方案