网络编程部分:Socket编程之每日箴言客户端

 AdviceServer.java

服务器

package jsj.java.exam.test10;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

import javax.swing.JOptionPane;

public class AdviceServer {
   
	public void go(){
		final String[] adviceList = { "成功一定有办法,失败一定有原因",
				"待人三要素:团结强人做大事,团结好人做实事,团结坏人不坏事",
				"说话三要素:该说时会说——程度,不该说时不说——聪明,知道何时该说何时不该说——高超",
				"干活三要素:该干时会干——能力,不该干时不干——明智,知道何时该干何时不该干——贤明。",
				"等一等就安全了,让一让就过往了,忍一忍就协调了" };
		Thread serverThread=new Thread(){
			public void run(){
				 try {
					    //准备启动服务器,监听6000端口
						//ServerSocket serverSocket=________104________;
					    ServerSocket serverSocket=new ServerSocket(6000);//2;
						while(true){
							//接收来自客户端的请求
							//Socket socket=________105________;
							Socket socket=serverSocket.accept();//2
							//创建单独的一个线程来处理客户端发出的请求
							ConnectionHandler handler=new ConnectionHandler(socket);
							handler.start();
						}
						
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
			}
		};
		serverThread.start();
		  
		
	}

	public static void main(String[] args) {
          new AdviceServer().go();
          JOptionPane.showMessageDialog(null, "关闭服务器");
          System.exit(0);
	} 

}
AdviceClient.java

客户端

packagejsj.java.exam.test10;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
/**
 * 每日箴言客户端
 * @author Administrator
 *
 */
public class AdviceClient {
	 public void go(){
		 try {
			// 与服务器(localhost)上的 6000 端口建立套接字连接 
			//Socket socket= ________101________;//2
			Socket socket= new Socket("127.0.0.1",6000);
			//InputStream is=________102________;//建立与Socket之间的输入流通道,能够获取服务器端传过来的数据
			InputStream is=socket.getInputStream();//2
			InputStreamReader reader=new InputStreamReader(is);
			BufferedReader bufferReader=new BufferedReader(reader);
			String advice=bufferReader.readLine();
			System.out.println("Today you should:"+advice);
			bufferReader.close();
			socket.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 
	 }
	 public static void main(String[] args) {
		new AdviceClient().go();
	}

}

ConnectionHandler.java

package jsj.java.exam.test10;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class ConnectionHandler extends Thread{
	private Socket socket;
	final String[] adviceList = { "成功一定有办法,失败一定有原因",
			"待人三要素:团结强人做大事,团结好人做实事,团结坏人不坏事",
			"说话三要素:该说时会说——程度,不该说时不说——聪明,知道何时该说何时不该说——高超",
			"干活三要素:该干时会干——能力,不该干时不干——明智,知道何时该干何时不该干——贤明。",
			"等一等就安全了,让一让就过往了,忍一忍就协调了" };
	public ConnectionHandler(Socket socket){
		this.socket=socket;
	}
	public void run(){
		OutputStream os;
		try {
			os = socket.getOutputStream();
			//PrintWriter writer=________103________;//创建到客户端的输出流通道
			PrintWriter writer=new PrintWriter(os);//2
			int randNumber=(int)(Math.random()*adviceList.length);
			writer.println(adviceList[randNumber]);
			writer.flush();
			writer.close();
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}


你可能感兴趣的:(网络编程部分:Socket编程之每日箴言客户端)