/*
Server
*/import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;public class ServerCircle {
public static void main(String[] args) { ServerSocket ss = null;
Socket s = null;
BufferedReader bufin = null;
BufferedWriter bufout = null;
String str = null;
try {
ss = new ServerSocket(10004);
System.out.println("服务器等待连接...");
s = ss.accept();
System.out.println("连接服务器成功!"); while (true) {
bufin = new BufferedReader(new InputStreamReader(
s.getInputStream()));
bufout = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
str = bufin.readLine();// 服务器在此停止
if (str.equalsIgnoreCase("exit")) {
bufout.write("Bye");
break;
} else {
Double radius = Double.parseDouble(str);
bufout.write("球的半径是:" + radius + "\n" + "球的体积是:" + 4.0 / 3
* Math.PI * Math.pow(radius, 3));
bufout.flush();
}
}
} catch (IOException e) {
} finally {
try {
bufin.close();
} catch (IOException e) {
}
try {
bufout.close();
} catch (IOException e) {
}
try {
s.close();
} catch (IOException e) {
}
try {
ss.close();
} catch (IOException e) {
}
}
}
}
//-------------------------------------------------------------
/*
Client
*/import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;public class ClientCircle {
public static void main(String[] args) { Socket s = null;
BufferedReader bufin = null;
BufferedWriter bufout = null;
String str = null;
Scanner sc = new Scanner(System.in);
try {
System.out.println("客户端请求计算服务器...");
s = new Socket("127.0.0.1", 10004);
System.out.println("请求成功!");
System.out.println("输入数据请求服务器计算,输入\"exit\"退出程序!");
while (true) {
bufin = new BufferedReader(
new InputStreamReader(s.getInputStream()));
bufout = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
System.out.print("请输入一个半径:");
str = sc.nextLine();
if (!str.equalsIgnoreCase("exit")) {
bufout.write(str);
bufout.flush();
System.out.println(bufin.readLine());//程序阻塞在此
} else {
bufout.write("exit");
bufout.flush();
System.out.println(bufin.readLine());//程序阻塞在此
break;
}
}
} catch (UnknownHostException e) {
} catch (IOException e) {
} finally { try {
bufout.close();
} catch (IOException e) {
}
try {
bufin.close();
} catch (IOException e) {
}
try {
s.close();
} catch (IOException e) {
}
}
}
}
/*程序编译没有任何错误就是在获取不到输入流*/Socket
Server
*/import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;public class ServerCircle {
public static void main(String[] args) { ServerSocket ss = null;
Socket s = null;
BufferedReader bufin = null;
BufferedWriter bufout = null;
String str = null;
try {
ss = new ServerSocket(10004);
System.out.println("服务器等待连接...");
s = ss.accept();
System.out.println("连接服务器成功!"); while (true) {
bufin = new BufferedReader(new InputStreamReader(
s.getInputStream()));
bufout = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
str = bufin.readLine();// 服务器在此停止
if (str.equalsIgnoreCase("exit")) {
bufout.write("Bye");
break;
} else {
Double radius = Double.parseDouble(str);
bufout.write("球的半径是:" + radius + "\n" + "球的体积是:" + 4.0 / 3
* Math.PI * Math.pow(radius, 3));
bufout.flush();
}
}
} catch (IOException e) {
} finally {
try {
bufin.close();
} catch (IOException e) {
}
try {
bufout.close();
} catch (IOException e) {
}
try {
s.close();
} catch (IOException e) {
}
try {
ss.close();
} catch (IOException e) {
}
}
}
}
//-------------------------------------------------------------
/*
Client
*/import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;public class ClientCircle {
public static void main(String[] args) { Socket s = null;
BufferedReader bufin = null;
BufferedWriter bufout = null;
String str = null;
Scanner sc = new Scanner(System.in);
try {
System.out.println("客户端请求计算服务器...");
s = new Socket("127.0.0.1", 10004);
System.out.println("请求成功!");
System.out.println("输入数据请求服务器计算,输入\"exit\"退出程序!");
while (true) {
bufin = new BufferedReader(
new InputStreamReader(s.getInputStream()));
bufout = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
System.out.print("请输入一个半径:");
str = sc.nextLine();
if (!str.equalsIgnoreCase("exit")) {
bufout.write(str);
bufout.flush();
System.out.println(bufin.readLine());//程序阻塞在此
} else {
bufout.write("exit");
bufout.flush();
System.out.println(bufin.readLine());//程序阻塞在此
break;
}
}
} catch (UnknownHostException e) {
} catch (IOException e) {
} finally { try {
bufout.close();
} catch (IOException e) {
}
try {
bufin.close();
} catch (IOException e) {
}
try {
s.close();
} catch (IOException e) {
}
}
}
}
/*程序编译没有任何错误就是在获取不到输入流*/Socket
解决方案 »
- 此错误是怎么来的? 哪位高手帮忙看看怎么回事?
- 关于可以在线编程和测试java&python的网站
- 用DefaultMutableTreeNode 构造的所有节点的一棵JTree,如何初始化展开
- 如何寻找指定文件的绝对路径,getAbsolutePath()不行!
- 什么时候回收垃圾
- 怎样在FRAME中显示图片啊?
- 将所有class文件打包成jar后,为什么运行时会这样?(请进来看)
- 关于java应用程序的打包问题
- 使用jar.exe打包时,路径中不能有空格
- oracle中如何用PL/SQL打开一个指定的库,并在屏幕上列出库中的所有表?
- 为什么用php的GD库压缩图片,图片体积反而变大呢?
- 关于Socket网络编程
----------------------------------------------------
貌似这个只是读一行,不会阻塞的吧
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;public class ServerCircle {
public static void main(String[] args) {ServerSocket ss = null;
Socket s = null;
BufferedReader bufin = null;
BufferedWriter bufout = null;
String str = null;
try {
ss = new ServerSocket(10004);
System.out.println("服务器等待连接...");
s = ss.accept();
System.out.println("连接服务器成功!");while (true) {
bufin = new BufferedReader(new InputStreamReader(
s.getInputStream()));
bufout = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
str = bufin.readLine();// 服务器在此停止
if (str.equalsIgnoreCase("exit")) {
bufout.write("Bye");
break;
} else {
Double radius = Double.parseDouble(str);
bufout.write("球的半径是:" + radius + "\n" + "球的体积是:" + 4.0 / 3
* Math.PI * Math.pow(radius, 3));
bufout.flush();
}
}
} catch (IOException e) {
} finally {
try {
bufin.close();
} catch (IOException e) {
}
try {
bufout.close();
} catch (IOException e) {
}
try {
s.close();
} catch (IOException e) {
}
try {
ss.close();
} catch (IOException e) {
}
}
}
}import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;public class ClientCircle {
public static void main(String[] args) {Socket s = null;
BufferedReader bufin = null;
BufferedWriter bufout = null;
String str = null;
Scanner sc = new Scanner(System.in);
try {
System.out.println("客户端请求计算服务器...");
s = new Socket("127.0.0.1", 10004);
System.out.println("请求成功!");
System.out.println("输入数据请求服务器计算,输入\"exit\"退出程序!");
while (true) {
bufin = new BufferedReader(
new InputStreamReader(s.getInputStream()));
bufout = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));System.out.print("请输入一个半径:");
str = sc.nextLine();
if (!str.equalsIgnoreCase("exit")) {
bufout.write(str);
bufout.flush();
System.out.println(bufin.readLine());//程序阻塞在此
} else {
bufout.write("exit");
bufout.flush();
System.out.println(bufin.readLine());//程序阻塞在此
break;
}
}
} catch (UnknownHostException e) {
} catch (IOException e) {
} finally {try {
bufout.close();
} catch (IOException e) {
}
try {
bufin.close();
} catch (IOException e) {
}
try {
s.close();
} catch (IOException e) {
}
}
}
}