一个java难题

bqylin 2010-03-12 11:50:09
下面代码有没错,高手给看看。

编写一个客户/服务器程序qmj,服务器端的功能是计算圆的面积。客户端将圆的半径发送给服务器端,服务器端计算得出的圆面积将发送给客户端,并在客户端显示。

qmjClient:

import java.io.*;
import java.net.*;

public class qmjClient
{
public static void main(String[] args)
{
try
{
Socket socket=new Socket("127.0.0.1",4700);

PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

String readline;
readline=sin.readLine();

while (!readline.equals("bye"))
{
os.println(readline);
os.flush();
System.out.println("圆的半径:"+readline);
System.out.println("圆的面积:"+is.readLine());
readline=sin.readLine();
}
os.close();
is.close();
socket.close();
}
catch (Exception e)
{
System.out.println("Error:"+e);
}
}
}



qmjServer:

import java.io.*;
import java.net.*;

public class Cx2Server
{
public static void main(String args[]) throws IOException
{
int clientnum=0;
ServerSocket serversocket=null;
try
{
serversocket=new ServerSocket(4700);
}
catch (IOException e)
{
System.out.println("Could not listen on port:4700.");
System.exit(-1);
}
Socket socket=serversocket.accept();

try
{
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

int r;
double mianji;

r=integer.parseint(is.readline);
mianji=3.14*r*r;

while (!line.equals("bye"))
{ os.println(mianjistr);
os.flush();
System.out.println("圆的面积:"+string.valueof(mianji));
System.out.println("圆的半径:"+string.valueof(r));
line=sin.readLine();
}
os.close();
is.close();
}
catch (Exception e)
{
System.out.println("Error:"+e);
}

socket.close();
serversocket.close();
}
}
...全文
229 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦_枫 2010-03-12
  • 打赏
  • 举报
回复
改成这样没问题。。。。
梦_枫 2010-03-12
  • 打赏
  • 举报
回复
public class qmjClient {

public static void main(String[] args)
{
try
{
Socket socket=new Socket("10.168.53.54",4700);

PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));

BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

String readline;
readline=sin.readLine();

while (!readline.equals("bye"))
{
os.println(readline);
os.flush();
System.out.println("圆的半径:"+readline);
System.out.println("圆的面积:"+is.readLine());
readline=sin.readLine();
}
sin.close();
os.close();
is.close();
socket.close();
}
catch (Exception e)
{
System.out.println("Error:"+e);
}
}

}
梦_枫 2010-03-12
  • 打赏
  • 举报
回复
public class Cx2Server {

public static void main(String args[]) throws IOException
{
ServerSocket serversocket=null;
try
{
serversocket=new ServerSocket(4700);
}
catch (IOException e)
{
System.out.println("Could not listen on port:4700.");
}
Socket socket=serversocket.accept();

try
{
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());
int r = 0;
double mianji;
try
{
r=Integer.parseInt(is.readLine());
}
catch(NumberFormatException e)
{
System.out.println("结束了。。。。");
os.close();
is.close();
socket.close();
serversocket.close();
}

mianji=3.14*r*r;
while (true)
{
os.println(mianji);
os.flush();
}
}
catch (Exception e)
{
System.out.println("Error:"+e);
socket.close();
serversocket.close();
}
}
}
cool_scorpion 2010-03-12
  • 打赏
  • 举报
回复
代码有没有错,自己跑一下就行了,然道要别人替你做这件事?
bqylin 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 andy2u 的回复:]
刚调试了几位的,怎么都有问题啊?程序没问题但运行的时候就有问题
[/Quote]

错误提示是什么啊
duanzongfen 2010-03-12
  • 打赏
  • 举报
回复
那就看看!你那buffereReader中的readLine()方法的问题!!因为他要有一个\n!!你看看有没掉!了
duanzongfen 2010-03-12
  • 打赏
  • 举报
回复
把你的跑了的错误提示信息贴出来!
andy2u 2010-03-12
  • 打赏
  • 举报
回复
刚调试了几位的,怎么都有问题啊?程序没问题但运行的时候就有问题
andy2u 2010-03-12
  • 打赏
  • 举报
回复
5楼哥们你的那个程序好像不行啊
andy2u 2010-03-12
  • 打赏
  • 举报
回复
不错,写得都很强悍
li569575121 2010-03-12
  • 打赏
  • 举报
回复
给你另一种写法,调试通过的。
//service
package db;
import java.io.*;
import java.net.*;

public class ServerTest
{
public static void main(String args[]) throws IOException
{
int clientnum=0;
ServerSocket serversocket=null;
try
{
serversocket=new ServerSocket(1111);
}
catch (IOException e)
{

System.exit(-1);
}
Socket socket=serversocket.accept();
System.out.println("COMING-------");

try
{
String line=null;
DataInputStream dis=new DataInputStream(socket.getInputStream());
DataOutputStream dos=new DataOutputStream(socket.getOutputStream());


while (true)
{
System.out.println("输出半径");
String r1=dis.readUTF();
if("byte".equals(r1))break;
String s=(3.14*Integer.parseInt(r1)*(Integer.parseInt(r1)))+"";
dos.writeUTF(s);
System.out.println("面积:"+s);
}
}
catch (Exception e)
{
System.out.println("Error:"+e);
}


}
}

//client
package db;
import java.io.*;
import java.net.*;

public class ClientTest
{
public static void main(String[] args)
{
try
{

Socket socket=new Socket("10.164.109.31",1111);


DataInputStream dis=new DataInputStream(socket.getInputStream());
DataOutputStream dos=new DataOutputStream(socket.getOutputStream());
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));

String readline;
System.out.println("输入半径------");
while (true)
{

readline=sin.readLine();
System.out.println("半径:"+Integer.parseInt(readline));
dos.writeUTF(readline);
String s=dis.readUTF();
System.out.println("面积:"+s);

}

}
catch (Exception e)
{
System.out.println("Error:"+e);
}
}
}

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧