本帖最后由 彭波 于 2013-4-5 16:42 编辑
- /*
- 需求:建立一个文本转换服务器
- 客户端给服务端发送文本,服务端会将文本转成大写在返回
- 给客户端
- 而且客户端可以不断的尽兴文本转换,当客户端输入over时
- 转换结束
- 分析:
- 客户端:既然是操作设备上的数据,那么就可以使用IO技术,
- 并按照IO的操作规律来思考。
- 源:键盘录入
- 目的:网络设备,网络输出流。而且操作的是文本数据。可以
- 选择字符流
-
- 步骤:
- 1,建立服务
- 2,获取键盘录入
- 3,将数据发给服务端
- 4,然后取服务端返回的大写数据
- 5,结束,关资源
- 都是文本数据,可以使用字符流,提高效率,加入缓冲
- */
- import java.io.*;
- import java.net.*;
- class TransClient
- {
- public static void main(String[] args)throws Exception
- {
- Socket s = new Socket("114.98.251.139", 10005);
-
- //定义读取键盘数据的流对象
- BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
-
- //定义目的,将数据写入到socket输出流,发给服务端
- BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
-
- //定义一个socket读取流,读取服务端返回的大写信息
- BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
-
- String line = null;
-
- while((line=bufr.readLine()) != null)
- {
- if("over".equals(line))
- break;
-
- bufOut.write(line);
- bufOut.newLine();//换行
- bufOut.flush();//刷新
-
- String str = bufIn.readLine();
-
- System.out.println("server: "+str);
- }
-
- bufr.close();//关闭键盘录入
- s.close();
- }
- }
- /*
- 服务端:
- 源:socket读取流
- 目的:socket输出流
- 都是文本,装饰
- */
- class TransServer
- {
- public static void main(String[] args)throws Exception
- {
- ServerSocket ss = new ServerSocket(10005);
-
- Socket s = ss.accept();
-
- String ip = s.getInetAddress().getHostAddress();
- System.out.println(ip+"...connect");
-
- //读取socket 读取流中的数据
- BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
-
- //目的:socket输出流,将大写数据写入到socket输出流,并发送给客户端
- BufferedWriter bufOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
-
- String line = null;
- while((line=bufIn.readLine()) != null);
- {
- System.out.println(line);
- bufOut.write(line.toUpperCase());
- bufOut.newLine();
- bufOut.flush();
- }
-
- s.close();
- ss.close();
- }
- }
复制代码 大家用上面的代码测试下(测试时ip换成你们自己的)。我仔细查看了下,都和老师一样啊,怎么客户端的信息没有发出去啊,都newLine和floush了啊,咋么回事,着急?????
都连接上了,直接上图了
(1)
服务器端,都连接上了,
(2)
客户端,键盘输入字母,回车,没有反应啊{:soso_e118:}
|