import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try {
// 向本机的4700 端口发出客户请求
Socket socket = new Socket("127.0.0.1", 4700);
if (socket.isConnected()) {
System.out.println("success!");
}
// 由系统标准输入设备构造BufferedReader 对象
BufferedReader sin = new BufferedReader(new InputStreamReader(
System.in));
// 由Socket 对象得到输出流,并构造PrintWriter 对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由Socket 对象得到输入流,并构造相应的BufferedReader 对象
BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
String readline;
// 从系统标准输入读入一字符串
readline = sin.readLine();
// 若从标准输入读入的字符串为 "bye"则停止循环
while (!readline.equals("bye")) {
// 将从系统标准输入读入的字符串输出到Server
os.println(readline);
// 刷新输出流,使Server 马上收到该字符串
os.flush();
// 在系统标准输出上打印读入的字符串
// System.out.println("Client:" + readline);
// 从Server 读入一字符串,并打印到标准输出上
System.out.println("Server:" + is.readLine());
// 从系统标准输入读入一字符串
readline = sin.readLine();
} // 继续循环
os.close(); // 关闭Socket 输出流
is.close(); // 关闭Socket 输入流
socket.close(); // 关闭Socket
} catch (Exception e) {
System.out.println("Error" + e); // 出错,则打印出错信息
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TalkServer1 {
public static void main(String args[]) {
try {
ServerSocket server = null;
try {
server = new ServerSocket(4700);
// 创建一个ServerSocket 在端口4700 监听客户请求
} catch (Exception e) {
System.out.println("can not listen to:" + e);
// 出错,打印出错信息
}
Socket socket = null;
try {
socket = server.accept();
// 使用accept()阻塞等待客户请求,有客户
// 请求到来则产生一个Socket 对象,并继续执行
} catch (Exception e) {
System.out.println("Error." + e);
// 出错,打印出错信息
}
//String line;
BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// 由Socket 对象得到输入流,并构造相应的BufferedReader 对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由Socket 对象得到输出流,并构造PrintWriter 对象
//BufferedReader sin = new BufferedReader(new InputStreamReader(
// System.in));
// 由系统标准输入设备构造BufferedReader 对象
String q = manage(is);
// 在标准输出上打印从客户端读入的字符串
//line = sin.readLine();
// 从标准输入读入一字符串
while (q!="bye") {
// 如果该字符串为 "bye",则停止循环
os.println(q);
// os.println(line);
// System.out.println("再见为什么不行");
// 向客户端输出该字符串
os.flush();
// 刷新输出流,使Client 马上收到该字符串
//System.out.println("Server:" + line);
// 在系统标准输出上打印读入的字符串String s = is.readLine();
q = manage(is);
// 从Client 读入一字符串,并打印到标准输出上
//line = sin.readLine();
// 从系统标准输入读入一字符串
} // 继续循环
os.close(); // 关闭Socket 输出流
is.close(); // 关闭Socket 输入流
socket.close(); // 关闭Socket
server.close(); // 关闭ServerSocket
} catch (Exception e) {
System.out.println("Error:" + e);
// 出错,打印出错信息
}
}
private static String manage(BufferedReader is) throws IOException {
String s = is.readLine();
int q = 0;
for (int i = 0; i < s.length(); i++) {
if (Character.toString(s.charAt(i)).equals("+")) {
q = Integer.parseInt(s.substring(0, i))
+ Integer.parseInt(s.substring(i + 1));
break;
} else if (Character.toString(s.charAt(i)).equals("-")) {
q = Integer.parseInt(s.substring(0, i))
- Integer.parseInt(s.substring(i + 1));
break;
} else if (Character.toString(s.charAt(i)).equals("*")) {
q = Integer.parseInt(s.substring(0, i))
* Integer.parseInt(s.substring(i + 1));
break;
} else if (Character.toString(s.charAt(i)).equals("/")) {
q = Integer.parseInt(s.substring(0, i))
/ Integer.parseInt(s.substring(i + 1));
break;
}
}
System.out.println("Client:" + s + "=" + q);
return s + "=" + q;
}
}
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class TalkServer {
public static void main(String args[]) {
int a = 0, c = 0, index = 0;
String b = null;
int sum = 0;
try {
ServerSocket server = null;
try {
server = new ServerSocket(4700);
// 创建一个ServerSocket 在端口4700 监听客户请求
} catch (Exception e) {
System.out.println("can not listen to:" + e);
// 出错,打印出错信息
}
Socket socket = null;
try {
socket = server.accept();
// 使用accept()阻塞等待客户请求,有客户
// 请求到来则产生一个Socket 对象,并继续执行
} catch (Exception e) {
System.out.println("Error." + e);
// 出错,打印出错信息
}
String line;
BufferedReader is = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// 由Socket 对象得到输入流,并构造相应的BufferedReader 对象
PrintWriter os = new PrintWriter(socket.getOutputStream());
// 由Socket 对象得到输出流,并构造PrintWriter 对象
// BufferedReader sin = new BufferedReader(new InputStreamReader(
//System.in));
// 由系统标准输入设备构造BufferedReader 对象
//System.out.println("Client:" + is.readLine());
// 在标准输出上打印从客户端读入的字符串
line = is.readLine();
// 从标准输入读入一字符串
while (!line.equals("bye")) {
// 如果该字符串为 "bye",则停止循环
if (line.contains("+")) {
index = line.indexOf("+");
a = Integer.valueOf(line.substring(0, index));
b = line.substring(index, index + 1);
c = Integer.valueOf(line.substring(index + 1, line.length()));
sum = a + c;
} else if (line.contains("-")) {
index = line.indexOf("-");
a = Integer.valueOf(line.substring(0, index));
b = line.substring(index, index + 1);
c = Integer.valueOf(line.substring(index + 1, line.length()));
sum = a - c;
} else if (line.contains("*")) {
index = line.indexOf("*");
a = Integer.valueOf(line.substring(0, index));
b = line.substring(index, index + 1);
c = Integer.valueOf(line.substring(index + 1, line.length()));
sum = a * c;
} else if (line.contains("/")) {
index = line.indexOf("/");
a = Integer.valueOf(line.substring(0, index));
b = line.substring(index, index + 1);
c = Integer.valueOf(line.substring(index + 1, line.length()));
sum = a / c;
}
os.println(a+b+c+"="+sum);
// 向客户端输出该字符串
os.flush();
// 刷新输出流,使Client 马上收到该字符串
//System.out.println("Server:" + line);
// 在系统标准输出上打印读入的字符串
//System.out.println("Client:" + is.readLine());
// 从Client 读入一字符串,并打印到标准输出上
line = is.readLine();
// 从系统标准输入读入一字符串
} // 继续循环
os.close(); // 关闭Socket 输出流
is.close(); // 关闭Socket 输入流
socket.close(); // 关闭Socket
server.close(); // 关闭ServerSocket
} catch (Exception e) {
System.out.println("Error:" + e);
// 出错,打印出错信息
}
}
}