Socket 的方法 getOutputStream() 和 getInputStream()
来源:互联网 发布:nba张伯伦数据 编辑:程序博客网 时间:2024/06/06 12:55
一个非常简单的客户端程序:
import java.io.*;import java.net.*;public class DailyAdviceClient{ public void go() { try { Socket s = new Socket("127.0.0.1", 5000); InputStreamReader streamReader = new InputStreamReader(s.getInputStream()); BufferedReader reader = new BufferedReader(streamReader); String advice = reader.readLine(); System.out.println("Today you should: " + advice); reader.close(); } catch (IOException ex) { ex.printStackTrace(); } } public static void main(String[] args) { DailyAdviceClient client = new DailyAdviceClient(); client.go(); }}
对于 DailyAdviceClient 客户端来说,它是要经过 Socket 从地址为 127.0.0.1.5000 的服务器上取入数据,所以用 socket.getInputStream() 。
一个非常简单的服务器程序:
import java.io.IOException;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class AdviceServer { String[] adviceList = {"Take smaller bites", "Go for the tight jeans. No they do NOT make you look fat", "One word: inappropriate", "Just for today, be honest. Tell your boss what you *really* think", "You might want to rethink that haircut"}; public void go() { try { ServerSocket serverSocket = new ServerSocket(4200); while(true) { Socket socket = serverSocket.accept(); PrintWriter printWriter = new PrintWriter(socket.getOutputStream()); String advice = getAdvice(); printWriter.println(advice); printWriter.close(); System.out.println(advice); } } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } } private String getAdvice() { int random = (int) (Math.random() * adviceList.length); return adviceList[random]; } public static void main(String[] args) { AdviceServer adviceServer = new AdviceServer(); adviceServer.go(); }}
对于 AdviceServer 服务器应用来说,它要通过 socket 向绑定 4200 端口的客服端传出去数据,所以用 socket.getOutputStream()。
总之,看这个用 socket 的类,它是通过 socket 取入数据还是传出数据,取入数据就用 getInputStream() ,传出数据就用 getOutputStream() .
阅读全文
0 0
- Socket 的方法 getOutputStream() 和 getInputStream()
- Socket类的getInputStream方法与getOutputStream方法的使用
- Socket类的getInputStream方法与getOutputStream方法的使用
- Socket类的getInputStream方法与getOutputStream方法的使用
- Socket类的getInputStream与getOutputStream详解
- Socket的getInputStream()方法
- HttpServletRequest的getInputStream方法和getParameter方法
- getOutputStream和getWriter方法
- 网络 两边通信 net io SetverSocket Socket DataInputStream OutputStream getInputStream getOutputStream
- 用线程解决Socket的getInputStream阻塞
- 选择getOutputStream和getWriter方法的要点
- 关于Servlet中getWriter()和getOutputStream()方法的疑惑
- HttpServletResponse的getWriter()和getOutputStream()以及sendRedirect()方法
- 解决getOutputStream() 异常的方法
- 解决getOutputStream() 异常的方法
- java socket getinputstream 阻塞
- 关于request.getInputStream和request.getReader 方法的一些区别以及遇到的一些问题
- HttpServletRequest的getInputStream方法与getReader方法的区别
- Android 高德地图基本配置
- 动态代理的简单阐述
- 连续子序列内各元素和的最大值
- python---函数
- Spring 手动提交事务
- Socket 的方法 getOutputStream() 和 getInputStream()
- Ubuntu 16.04 LTS third maintenance update release
- 理解RESTful api设计
- 9 3
- uart的具体实现代码
- 【MYSQL】基础SQL语句总结(二)
- 算法2 Two Sum
- 9-3 DAIRY
- linux常用bash命令介绍