[黑马程序员]tcpdemo3
来源:互联网 发布:python自动化测试工具 编辑:程序博客网 时间:2024/06/05 22:57
/*需求: * 建立一个文本转换服务器 * 客户端给服务器端发送文本,服务器段会将文本转换成大写再返回给客户端。 * 而且客户端可以不断的进行文本转换。当客户端输入over时,转换结束 * * 分析: * 客户端: * 既然是操作设备上的数据,那么就可以用io技术,并按照io的操作规律来思考。 * 源:键盘录入 * 目的:网络设备,网络输出流 * 而且操作的是文本数据,可以选择字符流。 * * 都是文本数据,可以使用字符流操作数据,同时加入缓冲。 */package test.itheima;import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;public class TcpDemo3 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub}}class TcpClient3 {public static void main(String[] args) throws UnknownHostException,IOException {// 1.create socket object and set the IP&portSocket s = new Socket("127.0.0.1", 10000);// 2.Create read buffer and read from the keyboard.BufferedReader inKeyboard = new BufferedReader(new InputStreamReader(System.in));// 3.Create output for the serverBufferedWriter toServer = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));// 4.Create input from serverBufferedReader fromServer = new BufferedReader(new InputStreamReader(s.getInputStream()));String line = null;while ((line = inKeyboard.readLine()) != null) {if ("over".equals(line))break;toServer.write(line);toServer.newLine();toServer.flush();String str=fromServer.readLine();System.out.println("server:"+str);}s.close();inKeyboard.close();}}class TcpServer3{public static void main(String[] args) throws UnknownHostException,IOException{//1.create ServerSocketServerSocket ss=new ServerSocket(10000);//2.get socketSocket s=ss.accept();//3.get the ip from clientString ip=s.getInetAddress().getHostAddress();System.out.println("Client:"+ip);//4.get the string from client.BufferedReader bFromClient=new BufferedReader(new InputStreamReader(s.getInputStream()));//5.send back the string to client.BufferedWriter bToClient=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));System.out.println(bToClient);String line=null;while((line=bFromClient.readLine())!=null){bToClient.write(line.toUpperCase());/**************** 一定注意下面的两条语句******************/bToClient.newLine();bToClient.flush();/*该例出现的问题.: * 现象:客户端和服务器端都在莫名的等待. * why? * 因为客户端和服务器端都有阻塞式方法,这些方法没有读到结束标记.就会一直等. */}//6.close resourcess.close();}}
0 0
- [黑马程序员]tcpdemo3
- 黑马程序员---------------
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- 黑马程序员
- oracle存储过程中的if...elseif...else用法
- servlet过滤器Filter入门(转,有自己的例子)
- solr的安装和配置
- 编程
- Sonatype Nexus 搭建Maven 私服
- [黑马程序员]tcpdemo3
- Oracle循环语句
- 在自己的电脑上搭建服务器,发布自己的网站(学习之用)
- 集合类型 (python)
- 在ORACLE存储过程中创建临时表
- HDU3247 Resource Archiver(AC自动机+DP)
- 闰年判断
- js中生成json对象生成动态表格
- 杭电 1248 寒冰王座