A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bowen-xiao 中级黑马   /  2015-1-12 10:46  /  604 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


代码和思路都比较简单,有什么好的想法可以多指教。

Tcp 编程之客户端
需求:
客户端从键盘输入读取一个字符串,发送到服务器。
客户端接收服务器返回数据并打印。
思路整理:
第一步:创建一个Socket对象确定服务器地址以及端口号

第二步:创建一个输入流准备接收键盘输入,从键盘获取输入流到缓冲区;
第三步:创建一个输出流,用于发送数据到服务器端
第四步:创建一个输入流,用于服务器返回数据接收。
第五步:业务处理,完成所有操作后要关闭流。
完整客户端代码如下
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
/*
* Tcp 端客户端(需要先运行服器端)
* 客户端从键盘输入读取一个字符串,发送到服务器。
* 客户端接收服务器返回数据并打印。
*/

public class Test10_Tcp_Client {

   public static void main(String[] args) throws Exception {

      Socket s = new Socket( "192.168.1.103" , 8888); // 创建 Socket 对象;

      BufferedReader buf = new BufferedReader(

            new InputStreamReader(System. in )); // 从键盘获取输入流到缓冲区;

      BufferedWriter bufout= new BufferedWriter( new OutputStreamWriter(s.getOutputStream())

            ); // 创建一个输出流

      BufferedReader bufIn = new BufferedReader( new InputStreamReader(

            s.getInputStream())); // 获取输入流 …… ;  

      String line = null ;

      while ((line = buf.readLine()) != null ) {

         if ( "over" .equals(line))

            break ;//当键盘输入over时关闭客户端退出程序

            bufout.write(line);

            bufout.newLine();//写入一个行分隔符。

            bufout.flush();

            String str=bufIn.readLine();

           System. out .println( "服务器返回字符" +str);

      }

      s.close();

   }







0 个回复

您需要登录后才可以回帖 登录 | 加入黑马