已采纳回答 / 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
已采纳回答 / 汉娜之眼
既然图片能写入,为什么文字不行,按理说用的一个流如果没有格式限制就没有问题,这我也看不出什么问题。不过给你几个建议,你可以调试一下看看传文本的时候哪里阻塞了导致数据过不去,还有catch块不要抛出太多,可以用父类代替,最重要的一点。。。为什么没注释,还好代码不长也不难,要是复杂点真想回答的看一眼也觉得烦。。。
2016-07-03
已采纳回答 / SoyaDokio
解决办法:在Server类的第33、34行像讲师一样插入这句代码:s.shutdownInput();在Server类的原第38、39行像讲师一样插入这句代码:s.shutdownOutput();在Client类的第24、25行像讲师一样插入这句代码:socket.shutdownOutput();在Client类的原第31、32行像讲师一样插入这句代码:socket.shutdownInput();p.s. 建议把Server类的第30行代码放到28或29行之前。
2016-07-01
已采纳回答 / 心and心
读取数据有很多种方法,各有各的特点比如说字节流中,InputStream是最基本的,FileInputStream用来读取文件,DataInputStream适用于读取各种类型的数据,BufferedInputStream加缓冲可以提高IO性能字符流中也有相应的类,InputStreamReader,FileReader,BufferedReader其中BufferedReader有一个方法readLine(),可以一行一行读取,这个方法其他的都没有,使用起来比较方便再看它的构造方法,需要传入Reader...
2016-06-28
已采纳回答 / SoyaDokio
方法有三,下面依次道来。主菜单操作:选中目标代码 - & Bl Source - &g Surround With - &代码 Try/catch Block<...图片...>右键快捷菜单操作:选中目标代码 - &代码 单击右键 - &ift Surround With - & Bl Try/catch B...
2016-06-27
已采纳回答 / 慕粉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