【发布时间】:2013-11-07 01:31:48
【问题描述】:
我正在实现客户端/服务器文件发送和接收。
实现:C语言客户端和Java服务器。
正在发送的部分 C 代码:
long count;
FILE *file;
char *file_data;
file=fopen("test.txt","rb");
fseek (file , 0 , SEEK_END);
count = ftell (file);
rewind (file);
file_data=(char*)malloc(sizeof(char)*count);
fread(file_data,1,count+1,file);
fclose(file);
if ((numbytes = send(sockfd, file_data, strlen(file_data)+1 , 0)) == -1)
{
perror("client: send");
exit(1);
}
部分Java代码接收:
public String receiveFile()
{
String fileName="";
try
{
int bytesRead;
InputStream in = clientSocket.getInputStream();
DataInputStream clientData = new DataInputStream(in);
fileName=clientData.readUTF();
}
}
使用 readUTF() 函数后,服务器挂起或处于无限循环,不再继续。我用 readLine() 尝试过 BufferedReader。有一个错误提示“没有为 BufferedReader(InputStream) 和 readLine() 找到合适的构造函数给出警告。 除了 BufferedReader 还有其他选择吗?
【问题讨论】:
标签: java client bufferedreader utf datainputstream