//转自网络http://www.zaoxue.com/article/tech-71025.htm
import java.io.*;
import java.net.Socket;
public class ClientApp {
public static void main(String args[]) {
try {
// 创建通讯并且和主机Rock连接
Socket socket = new Socket("10.5.7.1", 8018);
// 打开这个Socket的输入/输出流
OutputStream os = socket.getOutputStream();
DataInputStream is = new DataInputStream(socket.getInputStream());
int c;
boolean flag = true;
String responseline;
while (flag) {
// 从标准输入输出接受字符并且写入系统
while ((c = System.in.read()) != -1) {
os.write((byte) c);
if (c == '"n') {
os.flush();
// 将程序阻塞,直到回答信息被收到后将他们在标准输出上显示出来
responseline = is.readLine();
System.out.println("Message is:" + responseline);
}
}
}
//关闭所有流
os.close();
is.close();
socket.close();
} catch (Exception e) {
System.out.println("Exception :" + e.getMessage());
}
}
}
import java.net.*;
import java.io.*;
public class ServerApp {
public static void main(String args[]) {
try {
boolean flag = true;
Socket clientSocket = null;
String inputLine;
int c;
ServerSocket socket = new ServerSocket(8018);
System.out.println("Server listen on:" + socket.getLocalPort());
while (flag) {
clientSocket = socket.accept();
DataInputStream is = new DataInputStream(
new BufferedInputStream(clientSocket.getInputStream()));
OutputStream os = clientSocket.getOutputStream();
while ((inputLine = is.readLine()) != null) {
// 当客户端输入stop的时候服务器程序运行终止!
if (inputLine.equals("stop")) {
flag = false;
break;
} else {
System.out.println(inputLine);
while ((c = System.in.read()) != -1) {
os.write((byte) c);
if (c == '"n') {
os.flush(); // 将信息发送到客户端
break;
}
}
}
}
is.close();
os.close();
clientSocket.close();
}
socket.close();
} catch (Exception e) {
System.out.println("Exception :" + e.getMessage());
}
}
}