http://blog.csdn.net/su20145104009/article/details/52843735 我写的 Socket实例之客户端向服务端上传文件UI版 一起学习 ~ 有问题欢迎评论 看到会回复
2016-10-18
http://blog.csdn.net/su20145104009/article/details/52843735 我写的 Socket实例之客户端向服务端上传文件UI版 一起学习 ~
2016-10-18
多用户通信,其实只需要创建线程处理类,然后将server类中的步骤写到run()方法中,具体可看笔记。^.^
2016-10-15
你可以在write()后输入PrintWriter的println(),也可以直接用println()取代write()发送消息。或者是和老师一样,直接调用发送端的socket的shutdownOutput()方法,这样会直接关闭输出流,接收端的readLine()就会知道消息传输结束了,不会一直卡在那等\r\n的界定符了。
这里不推荐用shutdownOutput()或shutdownInput()方法,这两个方法应该都是有特殊用途时才用的,同时关闭了后不能再次调用getInputStream()或是getOutputStream(),不然会抛出异常。
这里不推荐用shutdownOutput()或shutdownInput()方法,这两个方法应该都是有特殊用途时才用的,同时关闭了后不能再次调用getInputStream()或是getOutputStream(),不然会抛出异常。
2016-10-14
有人问:“打开输入流之前要调用shutdownoutput方法,反之也一样,原理不明白,但是如果不这么做,客户端和服务器都没法接收信息并输出,很奇怪”
其实是因为老师接受信息是使用BufferedReader的readLine()方法,这个方法是以\r\n作为界定符的,由于发送消息的那一端用的是PrintWriter的write()方法,这个方法并没加上\r\n,所以接收端会一直等待。
其实是因为老师接受信息是使用BufferedReader的readLine()方法,这个方法是以\r\n作为界定符的,由于发送消息的那一端用的是PrintWriter的write()方法,这个方法并没加上\r\n,所以接收端会一直等待。
2016-10-14
用字节数组大于127会输出负数,避免输出负数的方法:
byte[] bytes = address.getAddress();
for (byte b : bytes) System.out.println(b >= 0 ? b : b + 256);
byte[] bytes = address.getAddress();
for (byte b : bytes) System.out.println(b >= 0 ? b : b + 256);
2016-10-13