会socket的帮我看看这些代码。
java吧
全部回复
仅看楼主
level 9
Taylor女神
镇楼

2013年04月02日 11点04分 1
level 9
上J8,直接上代码排版好麻烦,这是server的代码
2013年04月02日 11点04分 2
缺少个while语句 while((line=in.readLine())!=null) { System.out.printLn(line); }
2013年04月02日 12点04分
回复 夏季野狼 :我试一下
2013年04月02日 13点04分
level 14
[黑线]
2013年04月02日 11点04分 3
对不起,没有你的二楼[瞌睡]
2013年04月02日 11点04分
level 9
这是client的代码
2013年04月02日 11点04分 4
level 9
先运行server在运行client,为啥没有输出呢?
2013年04月02日 11点04分 5
PrintWriter少了一个参数true,你再试试
2013年04月02日 11点04分
回复 汉代风云 :好的,我试一下
2013年04月02日 12点04分
目测没有flush
2013年04月02日 12点04分
回复 7658275 :还是没有,我调试了以下,不知道为什么运行到String line = in.readline();这一行就结束掉了。又没有报错。
2013年04月02日 12点04分
level 3
大哥帮忙看看我这个环境变量怎么设置:
win8系统
JDK路径:D:\Java\jdk1.7.0_07\bin
PATH值:C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT
2013年04月02日 12点04分 6
把这个JDK的路径复制放到PATH里面就是了,记得加分号、
2013年04月02日 12点04分
是随便找个地方放还是……
2013年04月02日 12点04分
回复 A01_121 :就是path的最前面
2013年04月02日 12点04分
回复 7658275 :大哥我新手你能不能说具体点,或者直接另起一楼把上面的环境变量配好
2013年04月02日 12点04分
level 12
[汗] 看了半天也没看到你那程序客户端有输出啊! 只向服务器out了“yeah”,客户端的read呢?
[揉脸]
2013年04月02日 13点04分 7
错了,没看你的楼中楼,你是说服务器也没输出?
2013年04月02日 13点04分
按道理说readline应该会阻塞在那里!
2013年04月02日 13点04分
回复 菜鸟EveryDay :按照我图中的代码,输出的是null,但是在printwriter里面加了true之后就什么都没有输出了
2013年04月02日 13点04分
level 7
去api文档看看,printwriter类下println()方法你就明白了。。
2013年04月02日 13点04分 8
打印 String,然后终止该行
2013年04月02日 14点04分
回复 7658275 :我上面调用的println方法是有String这个参数的。直接看这个无参不对吧。
2013年04月02日 14点04分
level 5
客户端没有向服务端写数据,out.println("yeah")只是打印字符串yeah,写数据要调用write方法。只有write方法才会向流中写数据,然后socket会将其发送到指定端口,然后服务器接收读取
2013年04月02日 14点04分 9
我没有用write,按你的说,加个flush就可以了。
2013年04月02日 14点04分
回复 7658275 :刚刚试了一下write方法,也不能接收到数据。
2013年04月02日 14点04分
回复 7658275 :。。。不用write,加个flush就可以了?你的输出结果是什么?
2013年04月02日 14点04分
回复 7658275 :PrintStream这个流我平时不怎么用,不过向流中写数据应该要用write方法吧,你写的字符串估计不对,readline方法需要读到换行符才会停止,所以应该是写wirte("yeah\n"),你试试看。
2013年04月02日 14点04分
level 10
首先我看完你的Client代码后,发觉你的逻辑中,并没有将服务器反馈的数据做任何输出。你只是打开了之间的通道(socket.getInputStream),然后你就没做任何处理了。所以如果你的客户端上能输出信息的话,也只是你那out打印出来的内容。我是觉得out的println方法和write方法还是有区别的,前者属控制台打印输出,而后者作写入操作。
我也只是最近接触到这方面,知识面不完善,单纯个人看法。@纯金键盘 请大师解惑
2013年04月03日 05点04分 11
嗯。我并没有将client接收的输出。我偷懒了一下。问题是我server那边的也没有输出来。不过现在解决了。再client加个flush的方法就可以输出了。
2013年04月03日 08点04分
回复 7658275 :既然你也知道你没对client接收到的数据作输出,那么你现在输出的数据是从哪里来的?[疑问]
2013年04月03日 11点04分
level 6
out.println("year");
后面加上
socket.shutdownOutput();
2013年04月03日 05点04分 12
我用得是flush方法,可以输出。
2013年04月03日 08点04分
level 8
我是来看女神的[傻笑]
2013年04月03日 11点04分 13
[Love]
2013年04月03日 11点04分
1