已采纳回答 / 慕粉1466417893
1. 为什么要用PrinterWriter?因为我们写程序的时候,往Socket里写数据,写的都是文本,都是字符,所以PrinterWriter用于程序员写入数据。因为PrinterWriter是包装的OutputStream,底层实现数据传输的时候,会把我们写入的字符转换成二进制数据,就是字节流,所以传输的时候都是字节流传输。2. 为什么要用InputStream接收?上面讲到了,底层传输的时候,都是字节流,所以要用InputStream读取,还要用BufferedReader转换成字符流,也是为了方便...
2016-06-21
已采纳回答 / SoyaDokio
有一种解释是如果需要向流中输出的是文字之类的字符型数据,则使用这个组合:<...code...>如果需要向流中输出的是文件之类的二进制型数据,则使用这个组合:<...code...>
2016-06-07
已采纳回答 / aryong
客户端pw.flush(); socket.shutdownInput();//关闭流是不是应该关闭输出流 socket.shutdownOutput();//关闭流
2016-06-04
已采纳回答 / 宋杰
如何实现多客户端之间的通信?经过服务器。答:服务器端同时持有两个socket,这两个socket分别表示和两个客户端的连接。从一个socket的输入流读取数据,写到另一个socket的输出流中,这样就能实现多客户端之间的通信吧。如何实现并行通信?答:从socket中可以获取输入流和输出流对象,如果使用两个线程,分别持有输入流和输出流,那么便可以实现你所谓的“并行通信”。
2016-05-31
已采纳回答 / qq_昼绽_0
InetAddress对象的获取InetAddress的构造函数不是公开的(public),所以需要通过它提供的静态方法来获取,有以下的方法:static InetAddress[] getAllByName(String host)static InetAddress getByAddress(byte[] addr)static InetAddress getByAddress(String host,byte[] addr)static InetAddress getByName(String ho...
2016-04-27
已采纳回答 / 灿烂满天星
DatagramPacket packet1=new DatagramPacket(bytes1, 0, bytes1.length,address,port);这里只有4个参数吧?第二个参数0是什么作用?
2016-04-26
已采纳回答 / qq_云在风中_0
这么跟你说吧,你代码肯定跟老师不一样,我想应该是你的关闭socket输入输出流的顺序有问题。截图跟你看:服务器端,这三步要依次来,这是有原因的<...图片...>客户端:对应的顺序也不能颠倒,你做到了这些,包你没问题,妥妥的<...图片...>
2016-04-25
已采纳回答 / Sylar丶
这里是用String类的构造函数将字节类型类型转换成字符串类型,toString是输出方法不具有类型转换功能,除非你在方法里转换成字符串再return字符串,明显前者方便一行代码解决问题.
2016-04-12