数据格式问题!
jxxy 2001-02-23 02:39:00 各位好,我现在在编网络通讯的程序,遇到了问题,请哪位大虾帮帮小弟,问题是这样的:
首先,我在dos下用bc31编了一个web服务器程序,在客户端做了一个java applet 程序,我想让客户和服务器进行通讯,但我却遇到了dos端数据输出格式与java端数据读格式不匹配的问题。我不知道如何解决!程序是这样的:
dos端:
1.我用程序生成一个存放一维整型数组的数据文件jisuan.dat,我是用以下代码:
signed long int y[10];
creat("jisuan.dat",166);
for(i=0;i<10;i++)
{
y[i]=0;
}
fp=fopen("jisuan.dat","wb");
fwrite(y,4,10,fp);
fclose(fp);
2.在socket建立后,web服务器的发送数据的程序如下:
fp=fpoen("jisuan.dat","rb");
while(!feof(fp));
{
l=fread(tcpout,4,10,fp); // byte tcpout[1030]
sock_flushnext(s); //清空缓冲区,目的是把数据往外发
sock_write(s,tcpout,l); //数据往缓冲区写
}
sock_err:;
fclose(fp);
......
客户端java程序如下:
import java.io.*;
import java.net.*;
public class test {
private Socket sock = null;
private BufferedWriter outWriter = null;
private DataInputStream inData=null;
public test(String host)
throws UnknownHostException,IOException {
this(host,80);
}
public test(String host,int port)
throws UnknownHostException,IOException {
sock = new Socket(host,port);
inData=new DataInputStream(sock.getInputStream());
outWriter = new BufferedWriter(
new OutputStreamWriter(sock.getOutputStream()));
}
public void bye() throws IOException {
inData.close();
inData = null;
outWriter.close();
outWriter = null;
sock.close();
sock = null;
}
public static void main(String[] args) {
try {
test t = new test("202.114.6.191");
t.outWriter.write("GET /jisuan.dat HTTP/1.0\r\n\r\n");
t.outWriter.flush();
byte f;
while((f = t.inData.readByte())!=-1) {
System.out.println(f);
}
t.bye();
}
catch(UnknownHostException unKnownHostError) {
unKnownHostError.printStackTrace();
System.exit(0);
}
catch(IOException ioError) {
ioError.printStackTrace();
System.exit(0);
}
}
}
运行结果是:java端只接受到了两个数据,即两个0,但应该是十个数据的,why???我想可能是在数据输出和读入的格式上出了问题,也许是其他的原因,我希望哪位高手能帮我诊断一下,您可以给我发信:jxxymail@china.com.谢谢!