--------
server.accept等待client端连接,有连接进入后,保存下client连接,并且接受client数据.然后转去进行银行处理.处理完毕后,取出client连接,并且将结果写进输出流.其c写的测试client程序与其通信,没有问题.
实际client端程序是我的java程序,流程如下:建立与server连接,然后向输出流写入数据,然后read服务端输出.但是,服务端输出一直超时;就是说,无法受到服务端写的输出信息.
(我的java client向自己写的模拟java server发请求,完全没有问题,可以正常返回)
请问那位高人能指点一二????非常着急.谢谢.....
6 个解决方案
#1
再次重申:
1、不要用PrintWriter,在网络传输上,它可能会有问题。
2、我还想问一下:你需求是否只和服务器交互一次就退出?
3、调试网络程序,不知到实际情况,很难说哪里出问题,但现在你应该做如下测试:
(1)、确信你的java已经向服务端发出正确的信息(服务端能正确解码)。
(2)、确信服务端的确在1分钟内处理完毕,并发出信息到你的java程序。
(3)、网络读不一定一次能读到全部的字符,你这样第二次读的时候会将第一次读的冲掉,换个读方法,能指定保存位置的。
1、不要用PrintWriter,在网络传输上,它可能会有问题。
2、我还想问一下:你需求是否只和服务器交互一次就退出?
3、调试网络程序,不知到实际情况,很难说哪里出问题,但现在你应该做如下测试:
(1)、确信你的java已经向服务端发出正确的信息(服务端能正确解码)。
(2)、确信服务端的确在1分钟内处理完毕,并发出信息到你的java程序。
(3)、网络读不一定一次能读到全部的字符,你这样第二次读的时候会将第一次读的冲掉,换个读方法,能指定保存位置的。
#2
期待结果ing!
#3
to qqbz(qqbz) :多谢
1、我用PrintWriter写过去的数据,对方接收正确。。
2、不是交互一次就推出。是多次请求-响应。
3、银行方认为其程序不会有问题,对方的程序已经应用到多家公司。
1、我用PrintWriter写过去的数据,对方接收正确。。
2、不是交互一次就推出。是多次请求-响应。
3、银行方认为其程序不会有问题,对方的程序已经应用到多家公司。
#4
lbdl(dreamweaver),byte[] buffer=new byte[220]; in.read(buffer);这样当然只能读到220位。while(true){接收完成后break;}就成了。
#5
用Writer是正确的,因为Stream处理的的是byte,Reader,Writer处理的是char.应该是读取的方式有问题.
#6
up
#1
再次重申:
1、不要用PrintWriter,在网络传输上,它可能会有问题。
2、我还想问一下:你需求是否只和服务器交互一次就退出?
3、调试网络程序,不知到实际情况,很难说哪里出问题,但现在你应该做如下测试:
(1)、确信你的java已经向服务端发出正确的信息(服务端能正确解码)。
(2)、确信服务端的确在1分钟内处理完毕,并发出信息到你的java程序。
(3)、网络读不一定一次能读到全部的字符,你这样第二次读的时候会将第一次读的冲掉,换个读方法,能指定保存位置的。
1、不要用PrintWriter,在网络传输上,它可能会有问题。
2、我还想问一下:你需求是否只和服务器交互一次就退出?
3、调试网络程序,不知到实际情况,很难说哪里出问题,但现在你应该做如下测试:
(1)、确信你的java已经向服务端发出正确的信息(服务端能正确解码)。
(2)、确信服务端的确在1分钟内处理完毕,并发出信息到你的java程序。
(3)、网络读不一定一次能读到全部的字符,你这样第二次读的时候会将第一次读的冲掉,换个读方法,能指定保存位置的。
#2
期待结果ing!
#3
to qqbz(qqbz) :多谢
1、我用PrintWriter写过去的数据,对方接收正确。。
2、不是交互一次就推出。是多次请求-响应。
3、银行方认为其程序不会有问题,对方的程序已经应用到多家公司。
1、我用PrintWriter写过去的数据,对方接收正确。。
2、不是交互一次就推出。是多次请求-响应。
3、银行方认为其程序不会有问题,对方的程序已经应用到多家公司。
#4
lbdl(dreamweaver),byte[] buffer=new byte[220]; in.read(buffer);这样当然只能读到220位。while(true){接收完成后break;}就成了。
#5
用Writer是正确的,因为Stream处理的的是byte,Reader,Writer处理的是char.应该是读取的方式有问题.
#6
up