关于read与readLine方法的差别,留给初学java的童鞋的,周六会更新详细解析
2016-04-27 23:00
639 查看
这是两个小程序,自己的电脑通过两个程序,分别成为客户端和服务器端,实现客户端写字母(在这里特意定义为字母),服务器端收到数据,变回大写字母再输送到客户端,并在客户点显示的功能,以此为出发点,分析read与readLine方法,
public class TCPDemo02 {//客户端
public static void main(String[] args) {
try {
Socket socket=new Socket("172.60.20.120",10005);
//定义读取键盘数据的流对象
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
//定义目的。将数据写入到socket输出流,发给服务端
BufferedWriter bufout=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//定义一个socket读取流,读取服务端返回的大写信息
BufferedReader bufIn=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line=null;
while ((line=bufr.readLine())!=null) {
if ("over".equals(line)) {
break;
}
bufout.write(line);
bufout.flush();//记得刷新
String str=bufIn.readLine();
System.out.println("server"+str);
}
bufr.close();
socket.close();//加个-1
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class TCPServerDemo02 {//服务器端
public static void main(String[] args) {
try {
ServerSocket server=new ServerSocket(10005);
Socket socket=server.accept();
String ip=socket.getInetAddress().getHostAddress();
System.out.println(ip+"-----connected");
//读取socket读取流中的数据。
BufferedReader bufIn=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//目的。socket输出流。将大写数据写入到socket输出流,并发送给客户端。
BufferedWriter bufOut=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String line=null;
while ((line=bufIn.readLine())!=null) {
System.out.println(line);
bufOut.write(line.toUpperCase());
bufOut.flush();
}
socket.close();//客户端关掉
server.close();//服务端关掉
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
<
4000
strong>
[/b]
童鞋们可以运行这两个程序,先启用服务器端,再启用客户端,看看程序会出什么结果?自己能不能解决?
小妞专属
public class TCPDemo02 {//客户端
public static void main(String[] args) {
try {
Socket socket=new Socket("172.60.20.120",10005);
//定义读取键盘数据的流对象
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
//定义目的。将数据写入到socket输出流,发给服务端
BufferedWriter bufout=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
//定义一个socket读取流,读取服务端返回的大写信息
BufferedReader bufIn=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line=null;
while ((line=bufr.readLine())!=null) {
if ("over".equals(line)) {
break;
}
bufout.write(line);
bufout.flush();//记得刷新
String str=bufIn.readLine();
System.out.println("server"+str);
}
bufr.close();
socket.close();//加个-1
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class TCPServerDemo02 {//服务器端
public static void main(String[] args) {
try {
ServerSocket server=new ServerSocket(10005);
Socket socket=server.accept();
String ip=socket.getInetAddress().getHostAddress();
System.out.println(ip+"-----connected");
//读取socket读取流中的数据。
BufferedReader bufIn=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//目的。socket输出流。将大写数据写入到socket输出流,并发送给客户端。
BufferedWriter bufOut=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String line=null;
while ((line=bufIn.readLine())!=null) {
System.out.println(line);
bufOut.write(line.toUpperCase());
bufOut.flush();
}
socket.close();//客户端关掉
server.close();//服务端关掉
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
<
4000
strong>
[/b]
童鞋们可以运行这两个程序,先启用服务器端,再启用客户端,看看程序会出什么结果?自己能不能解决?
小妞专属
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树