为了账号安全,请及时绑定邮箱和手机立即绑定

Java Socket应用---通信是这样练成的

难度初级
时长 2小时 0分
学习人数
综合评分9.77
496人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.6 逻辑清晰

已采纳回答 / 慕粉1466417893
1. 为什么要用PrinterWriter?因为我们写程序的时候,往Socket里写数据,写的都是文本,都是字符,所以PrinterWriter用于程序员写入数据。因为PrinterWriter是包装的OutputStream,底层实现数据传输的时候,会把我们写入的字符转换成二进制数据,就是字节流,所以传输的时候都是字节流传输。2. 为什么要用InputStream接收?上面讲到了,底层传输的时候,都是字节流,所以要用InputStream读取,还要用BufferedReader转换成字符流,也是为了方便...

已采纳回答 / SoyaDokio
有一种解释是如果需要向流中输出的是文字之类的字符型数据,则使用这个组合:<...code...>如果需要向流中输出的是文件之类的二进制型数据,则使用这个组合:<...code...>

已采纳回答 / aryong
客户端pw.flush(); socket.shutdownInput();//关闭流是不是应该关闭输出流 socket.shutdownOutput();//关闭流

已采纳回答 / 宋杰
如何实现多客户端之间的通信?经过服务器。答:服务器端同时持有两个socket,这两个socket分别表示和两个客户端的连接。从一个socket的输入流读取数据,写到另一个socket的输出流中,这样就能实现多客户端之间的通信吧。如何实现并行通信?答:从socket中可以获取输入流和输出流对象,如果使用两个线程,分别持有输入流和输出流,那么便可以实现你所谓的“并行通信”。

已采纳回答 / 慕工程0397477
挺重要的。这是基础,要想后面学习不费劲,打好基础很重要

已采纳回答 / 慕粉3291149
读文件的时候不需要刷新缓冲区吧  只有写文件的时候才刷新缓冲区吧

已采纳回答 / 疲惫的程序猿
是不是没有调用socket.shutdownOutput()方法,关闭输出流

已采纳回答 / 徑直上漠北
ctrl+shift+t,输入你要查找的类ctrl+o, 浏览方法

已采纳回答 / 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...

已采纳回答 / qq_云在风中_0
<...图片...>输出流,你关了输入流

已采纳回答 / qq_云在风中_0
这么跟你说吧,你代码肯定跟老师不一样,我想应该是你的关闭socket输入输出流的顺序有问题。截图跟你看:服务器端,这三步要依次来,这是有原因的<...图片...>客户端:对应的顺序也不能颠倒,你做到了这些,包你没问题,妥妥的<...图片...>

已采纳回答 / Sylar丶
这里是用String类的构造函数将字节类型类型转换成字符串类型,toString是输出方法不具有类型转换功能,除非你在方法里转换成字符串再return字符串,明显前者方便一行代码解决问题.

已采纳回答 / 格子系
应该是你电脑没有映射localhost,    把localhost改成真实ip。
课程须知
本课程是 Java 开发课程的高级课程,需要对 Java 中的面向对象、IO、多线程,以及网络相关知识有一定的基础
老师告诉你能学到什么?
1、网络相关的基础知识 2、Java 中网络相关 API 的应用 3、实现基于 TCP 的 Socket 编程 4、实现基于 UDP 的 Socket 编程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消