客户端与服务端的互动

来源:互联网 发布:mac用户文件夹在哪里 编辑:程序博客网 时间:2024/06/04 18:29
/*
 * 服务器
 * ps:先打开服务器后打开客户端
 */
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class Testv111 {
public static void main(String[] args) {
try {
//创建ServerSocket,并监听8888端口
ServerSocket server = new ServerSocket(8888);
Socket s = server.accept();
//通过Socket获取输入输出流
OutputStream os  = s.getOutputStream();
InputStream is = s.getInputStream();
DataOutputStream dos = new DataOutputStream(os);
DataInputStream dis = new DataInputStream(is);
//从控制台读取内容
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String info ;
while(true){
System.out.println("客户端:"+dis.readUTF());
//读取工作台的消息
info =  br.readLine();
//结束会话
if(info.equals("结束")){
break;
}
//返回消息给客户端
dos.writeUTF(info);


}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



}
}
/**
 * 客户端
 */
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.net.Socket;
import java.net.UnknownHostException;


public class Test222 {
public static void main(String[] args) {
Socket socket = null;
try {
//获取客户端的输出输入流
socket = new Socket("localhost",8888);
//接收服务器消息
InputStream is= socket.getInputStream();
DataInputStream dis = new DataInputStream(is);

//在客户端的控制台输入内容,然后发送到服务端
OutputStream os = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream (os);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String info;
while(true){
//读取控制台输入的内容
info = br.readLine();
if(info.equals("结束")){
break;
}
//输出到服务端。
dos.writeUTF(info);
dos.flush();
//接收服务器消息
info = dis .readUTF();
System.out.println("服务器:"+info);
}


} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}