在确定socket连通的时候输出一个连接成功的信息
即在connect = new Socket(hostIP, hostPort);
后面,看看socket是否真正连通了//这个你程序中已经有了
如果连通了,该和unix用户权限无关才是,再说你有在unix运行这个程序的权限,就应该可以才是
你能否保证两端肯定有数据可发?
建议在发送的时候比如write语句前头输出待发送的信息(自个调试)
即在connect = new Socket(hostIP, hostPort);
后面,看看socket是否真正连通了//这个你程序中已经有了
如果连通了,该和unix用户权限无关才是,再说你有在unix运行这个程序的权限,就应该可以才是
你能否保证两端肯定有数据可发?
建议在发送的时候比如write语句前头输出待发送的信息(自个调试)
在确定socket连通的时候输出一个连接成功的信息
即在connect = new Socket(hostIP, hostPort);
后面,看看socket是否真正连通了//这个你程序中已经有了
如果连通了,该和unix用户权限无关才是,再说你有在unix运行这个程序的权限,就应该可以才是
你能否保证两端肯定有数据等待或已经发送?
建议在发送的时候比如write语句前头输出待发送的信息(自个调试)==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
你说的UNIX我不知道是不是你把linux叫UNIX,
检查一下你的UNIX的网络设置是否正常,如IP,名字解析是否正常工作等等
int i=socketReader.read(cLen,0,9);
返回的i是多少?
如果是0表示连接被断开了。看看host.allow和host.deny或防火墙等配置,是否是这个连接或端口被禁掉了。
{
System.out.println("Error setting up socket connection: );
//此处 ~~~~为 "
按理说你程序是不会错的,毕竟你在window下面运行过了
sigh
问一下,你在unix下的返回结果int i=socketReader.read(cLen,0,9);0D
i值是多少?
你说是没有信息过来,那么这句应该会继续监听才是啊
btw:对于BufferedReader,干嘛不用readLine()方法??直接看字符信息就行
==============================================================
如上所言,并非完全正确,请从建议的角度、用怀疑的眼光批判地接收
int i=socketReader.read(cLen,0,9)的返回值是-1,应该正常
to alphazhao:
哦,谢谢你看出的bug,:-) 是我在贴我的程序时把一些多余的代码删掉的缘故。unix的版本是Solaris 8.0
我这就检查一下xiaolie提到的两个文件。请继续!
我刚开始也是用readLine(),后来由于数据格式问题,该用read(),也是没有办法的。请继续... ...
老实说,我对unix系统下防火墙啊什么的配置一点都不熟悉,vi命令我都忘光了……
如果真是和操作系统有关的话,我也没有法子的说……