棨优
你说的是想在控制台上交互,控制输出的信息么?
棨优
控制台一般是看打印信息的,你想在控制台输入可以用scanner
南风谨
emmm 写错了一个语句 看来还是要细心
qq__粉色的小海星_0
可能是客户端与服务端的编码不一致导致的,客服端接收信息的时候,将byte数组转换为Strin类型的时候进行编码,gbk或者utf-8,可以试试。
拢不君
你看的这个章节中:
server中仅仅实现了接受来自client的字符串信息的功能,所以在server运行的控制台会显示接收到信息。
client中仅仅实现了发送字符串信息的功能,没有接受的功能,所有在它的控制台也就没有信息显示。
你继续学习后续这个课程后续的视频,会逐步的完善server和client的功能,到时候client也会显示相应的信息了。
望采纳。
慕的地7274782
栗喵
写到一个test里 服务器启动后执行到accept()那儿会阻塞吧。。这样下面的语句也执行不到啊,客户端启动不了,得分别运行。或者写成多线程也行应该
爱3
客户端和服务端的端口号可以不一致的,服务端创建 Socket,处于侦听状态,客户端以服务端的 IP 地址和端口创建 Socket 就发起连接了,在命令提示符输入 netstat 命令可查看是否已建立连接
Miaih
换个端口号
哈哈小魔王
(1)String data=bfr.readLine(); while((data!=null)
data在while循环之前赋值,并且while循环时没有对其修改,所以while一直循环。
(2)while((data=bfr.readLine())!=null)
每次while循环都对data重新赋值为bfr.readLine(),所以读到null时终止循环。
明白了吗?望采纳。
田同学
socket那个是客户端的,serverSocket是服务器的
田同学
简单来讲就是shutDownOutput只关闭了输出流,输入流还可以正常使用;而close则是会在关闭流的同时造成socket的关闭,输入输出流都不能用了,详细的可参考:http://www.cnblogs.com/549294286/p/3947767.html
DA7
java把要发的数据先放到缓冲区,缓冲区放满以后再一次性发过去,而不是分开一次一次地发.
而flush()表示强制将缓冲区中的数据发送出去,不必等到缓冲区满.
大猫爱学习
321222142
在控制台选择Server的控制台输出就可以看到了
DarrenStark
查看服务器端是否已经启动,并且监听端口
查看客户端的主机地址端口号是否正确,
检查代码,是否按照教程中的方法请求
提问时建议加上报错信息,或者贴点关键代码
遇见花开遇见你啊
String buffer = br.readLine();
while (buffer != null) {
System.out.println("我是服务器端,客户端向我发送信息为: " + buffer);
}
这句话有问题了,buffer在读取玩br.readLine(),的时候就是已经有数值了,你在循环的时候已经进入了while(1)z这样的情况,他是不会跳出循环的,所以一直在重复打印
二道桥十三太保
建议你去学习一下IO流,往前几个章节就有,教程分了好几个课时呢,所以现在给你这样说的话 你也搞不懂!
rosycloud
123
人间的下午茶
看的见的,只不过用PrintWriter会比BufferedWriter方便一点,可以去JavaIO那里看一下视频哦
慕圣1503773
你导入的包不太对吧,应该是这个import java.io.OutputStream;一般创建这种的时候最多的报错就是包出错的问题
Remember丶Forever
这个应该是都可以的吧,但是我觉得还是写在里面更严谨一点吧,菜鸟一枚,个人愚见
盛夏____
该怎么解决啊?
粒子酱
while()语句错误,要么你擅自改了代码,要么你自己写了另一种方法
qq_一天十小时_0
这个与你的输入法有关,说明crtl+Alt+o快捷键与eclipse的自动导包快捷键有冲突,因此,你只需要将输入法设置一下其他的快捷方式就可以了。
haqiang
服务器是一直处于启动状态的,客户端则是分别处于各自的情况,他们通过socket进行通信,通过流来读取写入要沟通的消息。服务器端不是从头开始运行,而是从while循环里开始的。
qq_乱_1
就是。。。。你得到了这个情报,就得立马把他给送出去。
爱因斯坦教授
染红_街道
while 循环里面加上一行str=isr.readLine();
Jarly杰
有一种解释是
如果需要向流中输出的是文字之类的字符型数据,则使用这个组合:
new BufferedReader(new InputStreamReader(new InputStream())); new BufferedWriter(new PrintWriter(new OutputStream()));
如果需要向流中输出的是文件之类的二进制型数据,则使用这个组合:
new BufferedReader(new InputStreamReader(new InputStream())); new BufferedWriter(new OutputStreamWriter(new OutputStream()));