已采纳回答 / 想_自由
建立了新的线程后,显示客户端信息的方法在一个新的线程中执行。也就是说 显示当前客户端数量和ip地址信息的方法在一个线程中,处理接收客户端的输出信息在另一个线程中。两个线程同时执行,而显示客户端的数量这边的方法很简单,执行起来时间短,所以先输出出来了。你可以在count++前添加sleep函数让该线程暂停一会,结果就会反过来。
2016-08-03
最新回答 / 进步中的编程猿
pw.flush();//刷新缓存pw.close();os.close();socket.shutdownInput();br.close();is.close();socket.close();这个是客户端的 其中 socket.shutdownInput 应该改为socket.shutdonwnOutput 因为上面是接收了 输出流 所以是要关闭输出流 再有是你的客户端的地方 有同样的问题 把socket.shutdownOutput 改为socket.s...
2016-08-02
https://github.com/HaazaCheng/FileUploader.git 我的github,添加了一些功能,希望可以帮助到大家。
2016-08-02
最新回答 / 慕移动9181930
老师,能不能把安装包也给我们啊,谢谢老师了type表示按钮的类型,是提交按钮还是重置按钮;name表示该按钮的名称,以备后台程序ASP、PHP使用
2016-07-31
已采纳回答 / qq_海贼_0
你的代码写错了,服务器端socket是由serverSocket.accept();来初始化,这样获取客户端传来的数据,除此之外你的User类还需要实现序列化接口,implements Serializable,最好把set/get方法补上,JavaBean的习惯养好,另外如果报端口号占用的异常,你就把端口号改一下,因为你按老师步骤实践可能8888端口之前已经用过了。<...code...>
2016-07-30
已采纳回答 / 江feng
这个原因建议去了解一个,原码、反码、补码的概念。IP地址是INT 类型的例如: 130在计算机中表示二进制位00000000 00000000 00000000 10000010 ,当它存入到字节数组中,由于一个字节有8位,故,存入后130为 10000010而二进制中最高位为符号位 (0代表整数,1代表负数),所以1000 0010表示的是一个负数,负数在计算机中是用的补码表示的,要求的原码,1000 0010 要先 -1 得:1000 0001 在求反后得其原码,0111 1110 转化为10进制为 ...
2016-07-29
最新回答 / 热爱学习的好孩子
首先cpu的资源有限,所谓的异步是快速的执行不同的任务,并且在之间进行切换,例如一个请求执行到某个阶段,再去执行另外一个,然后在切换回来继续执行。每一次的切换都是根据一个算法来选择下一个执行的任务到底是哪一个,其中影响算法选择的非常重要的参数就是任务的优先级,优先级高的任务执行的概率就高,反之优先级地的任务执行的概率就低。如果并发量非常的高的话,这种时间差就会非常的明显,所以要区分任务的优先级,让高优先级的任务先执行,次要的任务后执行。关键是少年别光注意 降低优先级这几个字 , 是降低其他任务的优先级,来...
2016-07-29
通过IP地址来实例一个对象居然用的不是getbyid()。而是getbyname()括号里面改成具体ID
2016-07-24
@code女神_imooc,你以为老师不知道所有类都有构造方法的吗?至少我这个初学者都知道每个类都有一个默认的构造方法。老师说没构造方法意思是API文档里面没有说明有构造方法,想要表达说不能用new的方式进行对象的生成,这样讲课对于大部分学生来说浅显易懂,如果按照你的说法讲到这里还要说“虽然API文档里面没有构造方法,但是java中任何类都是有构造方法的,只是InetAddress类的构造方法是private的,不对外暴露的”,多说了这句话对学习本章有什么意义,能表达出不能用new的方式进行对象的生成这个知识点吗?这样题外话多了只会让听者更迷糊。因为这个细节就说人家垃圾,我觉得你素质有点问题、
2016-07-23