簡體   English   中英

從C客戶端向Java服務器發送字符串

[英]Sending a string from C client to Java server

我正在嘗試從我的c客戶端向Java服務器發送一個字符串,之后服務器將一個文本文件發送到客戶端。

這是發送字符串的客戶端代碼的一部分。

int n = write(sock_fd,"Ready",5);
if (n < 0) 
     printf("ERROR writing to socket\n");
 recv_file(sock_fd, filename);

這是java代碼的服務器部分:

InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String message = br.readLine();
System.out.println("Message received from client is " + message);
String FILENAME = "data.txt";
sendFile(socket, "data.txt");

現在我已經驗證了如果我刪除服務器代碼中它試圖從c客戶端讀取字符串的部分,其余代碼工作正常並傳輸文件。 但如果不注釋字符串接收代碼,服務器和客戶端都會等待。

如果有人為我解決這個問題,我將不勝感激。

PS我知道之前已經問過這個問題,但這對我沒有幫助,所以我開始了一個新的主題。

br.readLine()想要讀一行。 客戶端永遠不會發送換行符,因此服務器正在等待換行符......永遠!

在客戶端發送的命令中添加換行符:

int n = write(sock_fd,"Ready\n", 6);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM