分享

客户端应用程序

 蹇胜雄 2015-07-09
package day05;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

/**
 * 客户端应用程序
 * @author Administrator
 *
 */
public class Client {
private Socket socket;
public Client(){
try {
/**
* 实例化Socket,尝试连接指定的服务器端
*/
socket = new Socket("localhost",8088);
} catch (Exception e) {
System.out.println("链接异常!");
e.printStackTrace();
}
}
/**
* 该方法用于与服务器端进行通信
*/
public void start(){
try {
/**
* 启动线程,接受服务器发送过来的信息
*/
GetServerInfoHandler handler = 
new GetServerInfoHandler(socket);
Thread t = new Thread(handler);
t.start();
/**
* 通过Socket创建输出流,用于向服务器端发送信息
*/
//java.io.OutputStream
OutputStream out = socket.getOutputStream();
/**
* 将输出流转换为PrintWriter,可以方便的发送字符串
*/
PrintWriter pw = new PrintWriter(out,true);
/**
* 将键盘的输入流变成缓冲字符输入流,用于读取用户
* 输入的内容
*/
BufferedReader SysInReader
     = new BufferedReader(
      new InputStreamReader(System.in)
      );
String str = null;
while(true){
//获取键盘输入的一行字符串
str = SysInReader.readLine();
/**
* 向服务器发送信息
*/
pw.println(str);
}
// /**
// * 通过Socket获取输入流,用于读取服务器端发送的信息
// */
// InputStream in = socket.getInputStream();
// InputStreamReader reader = new InputStreamReader(in);
// BufferedReader br = new BufferedReader(reader);
// String info = br.readLine();
// System.out.println("服务器说:"+info);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 客户端创建的线程,用于接收服务器发送过来的信息
* 并输出到控制台
* @author Administrator
*
*/
public class GetServerInfoHandler implements Runnable{
private Socket socket;
public GetServerInfoHandler(Socket socket){
this.socket = socket;
}
public void run(){
try {
/**
* 客户端这边通过输入流, 循环读取服务器发送
* 过来的信息
*/
BufferedReader reader = 
new BufferedReader(
new InputStreamReader(
socket.getInputStream()
)
);
String str = null;
while(true){
//读取服务器发送过来的一条信息
str = reader.readLine();
//输出到控制台
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args)throws Exception {
Client client = new Client();
client.start();
}
}





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多