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

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

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

最新回答 / 神帝
是不是先启动了客户端。客户端的socket声明的时候初始化为null试试

最赞回答 / 大将滕虎
serverThread.start();这里start()方法就是Thread调用run(){}方法了。

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

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

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

最赞回答 / SoyaDokio
题主,我有两个疑问。你说Server类负责启动线程类,那是死循环启动,还是加什么判断条件?不循环相当于单线程,无条件死循环的话试问你给JVM设定-Xmx 10240mb的话会不会能撑住24小时才报错java.lang.OutOfMemoryError?两个ServerSocket监听同一端口的话,后监听的会报错端口占用。那死循环中启动的第二个线程会不会为抢第一个线程所占的端口而报错?这两个问题想明白了你就知道这种假设是否可取了。

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

最新回答 / 醉卧忆知己
谷歌浏览器是当今最好的浏览器遵循www的最规范最好的浏览器。

最新回答 / Airly
你前面那个服务器端的代码都没有放到main方法里去。UDPserver us = new UDPserver();你用的这种方式根本就不能够调用上面的那些方法,因为这个是创建实例对象......而你想要的是运用那些方法。

最赞回答 / SoyaDokio
我想应该是ServerThread类里的java.io.PrintWriter.write()方法的问题吧。详情请参考我回答的另一个问题:客户端输出流是否shutdownOutput()会不会对程序造成异常?
课程须知
本课程是 Java 开发课程的高级课程,需要对 Java 中的面向对象、IO、多线程,以及网络相关知识有一定的基础
老师告诉你能学到什么?
1、网络相关的基础知识 2、Java 中网络相关 API 的应用 3、实现基于 TCP 的 Socket 编程 4、实现基于 UDP 的 Socket 编程

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消