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

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

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

最赞回答 / lxlacie
<...code...>public class UdpSocketMilServerDemo { public static void main(String[] args) { DatagramSocket socket = null; try { /* * 接受客户端发送到服务器的数据信息 */ int count = 0; //创建DatagramSocket,指定端口 ...

已采纳回答 / SoyaDokio
如果代码整体还是这样只做测试之用,那我的建议有两个:在writer.write("用户名:admin;密码:123456");中输出的字串结尾手动加上换行符,变成writer.write("用户名:admin;密码:123456\n");或writer.write("用户名:admin;密码:123456\r");将writer.write("用户名:admin;密码:123456");这个方法改为java.io.PrintWriter.println()这个方法,即改为writer.println("用...

已采纳回答 / 安静_天空
因为你想读取每一行所显示的内容(文字内容)。如果你用字节流输出,那么得到的结果会是一些字节码,然而你并不一定想得到字节码,你想得到的可能是文本内容,如果容内中存在汉字,你可能会得到乱码,一个汉字占用两个字节~字节流的输入输出都是以字节为基本单位的,即都是0101这样的东西。BufferedReader的缓冲作用主要是为了读写内容时更高效。

已采纳回答 / 半边口袋
其实只需要关闭socket , 与socket相关的流都会被自动关闭.

已采纳回答 / Leimans_
数据表并不是真的表, 只是一个sql文件, 文件里保存的数据表创建的sql语句, 可以放到数据库中执行sql语句来创建对应的表

已采纳回答 / 散落凡尘的雨
其实是一样的,只不过表现的形式不同。192.168.56.1转化成字节数组就是[-64,-88,56,1],具体转化:byte为8字节192太大所以表示不成正数的192就表示成-64,其余的都是同理,56可以表示成56。(至于为什么要表示成-64,原因是在计算机中存储的数都是补码,-64的补码与192的补码相同都是11000000所以可以这样存储)。

已采纳回答 / SoyaDokio
这是一种正确、严谨的写法。验证非NULL是编码中很重要的一环。假如本来就是NULL,这是调用各自的close()方法是会报错的。如果在实例化这些对象时出错导致这些对象为NULL,或是实例化没问题但中途出了什么异常导致这些对象为NULL,都会在未经验证非NULL前尝试调用close()方法关闭时报错。p.s. 讲师写socket关闭条件时写的是if(socket!=null)socket.close();这样写没错,但我想说一般是另一种写法if(!socket.isClosed())socket.close...

已采纳回答 / SoyaDokio
看报错应该以下3种可能:服务端没能正常启动;服务端和客户端设置的连接端口不一致;端口受限。

已采纳回答 / 果子李
你把源代码贴一下啊。可能是你port设置有问题。或者你客户端的socket没close

已采纳回答 / 果子李
那就有可能你读取的目标url中,多一些代码。这些代码就是你登陆的用户信息

已采纳回答 / LynnShaw
未指定端口号时,getport()返回-1如果要返回默认端口号,使用public int getDefaultPort()Gets the default port number of the protocol associated with this URL. If the URL scheme or the URLStreamHandler for the URL do not define a default port number, then -1 is returned

已采纳回答 / current_bp
首先不知道你是什么意思,如果byte类型,其最大值是127,超过最大值,就是越界,有可能变成负数,short类型的最大值是2^15-1,这个应该不会出错,不知道是不是你的类型错误。。。错将string类型赋值给short了。。。

已采纳回答 / weibo_馥小郁_0
你client.java里应该是shutdownOutputStream()  你打成输入流把输入流关闭了
课程须知
本课程是 Java 开发课程的高级课程,需要对 Java 中的面向对象、IO、多线程,以及网络相关知识有一定的基础
老师告诉你能学到什么?
1、网络相关的基础知识 2、Java 中网络相关 API 的应用 3、实现基于 TCP 的 Socket 编程 4、实现基于 UDP 的 Socket 编程

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消