黑马程序员技术交流社区
标题:
建立客户端与服务端,客户端接收用户输入的数据并反转...
[打印本页]
作者:
小丑
时间:
2015-5-1 16:13
标题:
建立客户端与服务端,客户端接收用户输入的数据并反转...
题目:
建立客户端与服务端,客户端接收用户输入的数据,发送给服务端。
服务端将接收到的数据进行反转,并发送给客户端。
注意;用户可以一直输入数据,并接收翻转后的数据。否则无效。
客户端代码:
package com.itheima_1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
/*
* 题目二:
* 建立客户端与服务端,客户端接收用户输入的数据,发送给服务端。
* 服务端将接收到的数据进行反转,并发送给客户端。
* 注意;用户可以一直输入数据,并接收翻转后的数据。否则无效。
*
*/
public class ClientDemo {
public static void main(String[] args) throws IOException {
// 创建发送端Socket对象
Socket s = new Socket("192.168.1.109", 10010);
q: while (true) {
// 封装键盘录入
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
// 把通道内的输出流封装为字符流
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
String line = null;
while ((line = br.readLine()) != null) {
// 发送数据
bw.write(line);
// 换行
bw.newLine();
// 刷新数据
bw.flush();
// 判断结束标记
if (line.equals("over")) {
break q;
}
// 获取服务端发回的数据
BufferedReader brReader = new BufferedReader(
new InputStreamReader(s.getInputStream()));
String str = null;
while ((str = brReader.readLine()) != null) {
// 将服务端发过来的数据输出到控制台
System.out.println(str);
break;
}
}
}
// 关闭资源
s.close();
}
}
复制代码
服务端代码:
package com.itheima_1;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
public static void main(String[] args) throws IOException {
// 创建服务端对象,并指定好端口
ServerSocket ss = new ServerSocket(10010);
q: while (true) {
// 监听客户端连接
Socket s = ss.accept();
// 对通道内的数据进行包装
BufferedReader br = new BufferedReader(new InputStreamReader(
s.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
// 判断结束标记
if (line.equals("over")) {
break q;
}
// 将得到的数据反转
String data = reverseString(line);
// 将反转后的数据发送给客户端
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
s.getOutputStream()));
bw.write("Server: " + data);
bw.newLine();
bw.flush();
}
}
// 释放资源
ss.close();
}
// 数据反转方法
private static String reverseString(String line) {
StringBuffer sb = new StringBuffer(line.length());
for (int i = line.length() - 1; i >= 0; i--) {
char c = line.charAt(i);
sb.append(c);
}
return sb.toString();
}
}
复制代码
作者:
ninjaes
时间:
2015-5-1 17:22
怎么建立连接 我的建立的不对
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2