編寫一個客戶/服務(wù)器程序,服務(wù)器的功能是計算圓的面積。客戶端將圓的半徑發(fā)送給服務(wù)器端,服務(wù)器端計算得出的圓面積發(fā)送給客戶端,并在客戶端顯示。

packagework11;

importjava.io.*;

importjava.net.*;

public classclient {

staticSocketsocket;

public static voidmain(String[] args)throwsUnknownHostException,IOException{

socket=newSocket("127.0.0.1",20000);

DataOutputStream dos=newDataOutputStream(socket.getOutputStream());

//獲取數(shù)據(jù)輸出流連接到socket上,向服務(wù)器端發(fā)送信息

DataInputStream dis=newDataInputStream(socket.getInputStream());

//獲取數(shù)據(jù)輸入流連接到socket上,并讀取服務(wù)器端的響應(yīng)信息

newreciveMessage(dis).start();

newsendMessage(dos).start();

}

}

classreciveMessageextendsThread{//接受信息的線程

privateDataInputStreamdis;

publicreciveMessage(DataInputStream dis){

this.dis=dis;

}

public voidrun(){

while(true){

try{

System.out.println(dis.readUTF());

}catch(IOException e){

e.printStackTrace();

}

}

}

}

classsendMessageextendsThread{//發(fā)送信息的線程

privateDataOutputStreamdos;

publicsendMessage(DataOutputStream dos){

this.dos=dos;

}

public voidrun(){

String info;

InputStreamReader is=newInputStreamReader(System.in);

BufferedReader bf=newBufferedReader(is);

while(true){

try{

info=bf.readLine();

dos.writeUTF(info);

}catch(IOException e){

e.printStackTrace();

}

}

}

}



packagework11;

importjava.io.*;

importjava.net.*;

public classserver {

staticServerSocketss;

public static voidmain(String[] args) {

try{

ss=newServerSocket(20000);

while(true) {

Socket s =ss.accept();

newrelayMessage(s).start();

}

}catch(IOException e) {

e.printStackTrace();

}

}

}

classrelayMessageextendsThread {

DataInputStreamdis;

DataOutputStreamdos;

Stringstr;

publicrelayMessage(Socket s)throwsIOException {

// this.s=s;

dis=newDataInputStream(s.getInputStream());

dos=newDataOutputStream(s.getOutputStream());

}

public voidrun() {

try{

while(true) {

str=dis.readUTF();

String area0 = area(str);

dos.writeUTF(area0);// 向s.dos寫數(shù)據(jù)

}

}catch(IOException e) {

e.printStackTrace();

}

}

publicString area(String r0) {

doubler =0;

r = Double.parseDouble(r0);

if(r <0)

return"輸入數(shù)據(jù)不能小于0";

doubleS = r*r*Math.PI;

returnDouble.toString(S);

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • 具體的發(fā)包與拆包的協(xié)議可以自己定義:我定義:包頭第一個字節(jié)為1時則為接收文件為0則為接收字符服務(wù)器:private...
    phi3閱讀 3,329評論 0 0
  • 揚(yáng)言要讓老太太在生日的時候享受飯來張口(為什么平時不行呢?!嗯,沒時間!更何況我媽疼我怎么可能讓我天天做飯)我還是...
    王小花和mo閱讀 115評論 0 1
  • 第一次覺得自卑是在初二的時候,那時候大家青春期,大家經(jīng)常在一起討論班級里誰對誰有意思啦,某某班誰長得漂亮,誰長得帥...
    王布同閱讀 406評論 0 1
  • 迷迭香葉帶有茶香,味辛辣、微苦,常被使用在烹飪上,也可用來泡花草茶喝。常綠灌木,古代認(rèn)為迷迭香能增強(qiáng)記憶,提神,調(diào)...
    周巧的文字時光閱讀 923評論 0 2