我在客戶端 - 服務器應用程序中遇到問題。客戶端向服務器發送圖片,服務器回覆回覆消息。客戶端服務器通信java
這裏是我的服務器代碼:
public class Server
{
public static void main(String[] args) throws Exception
{
String response="response";
ServerSocket socket = new ServerSocket(3333);
while (true)
{
Socket clientSocket = socket.accept();
DataInputStream dis = new DataInputStream(clientSocket.getInputStream());
FileOutputStream fout = new FileOutputStream("output.jpg");
int i;
while ((i = dis.read()) > -1)
fout.write(i);
DataOutputStream outToClient= new DataOutputStream(clientSocket.getOutputStream());
outToClient.writeBytes(response);
fout.flush();
fout.close();
dis.close();
outToClient.close();
clientSocket.close();
}
}
}
客戶:
public static void main(String[] args) throws Exception
{
// TODO Auto-generated method stub
String sentence;
int i;
FileInputStream fis = new FileInputStream ("pathphoto.jpg");
Socket sock = new Socket ("hostname",3333);
DataOutputStream os = new DataOutputStream(sock.getOutputStream());
System.out.println("Sending....");
while ((i = fis.read()) > -1)
os.write(i);
BufferedReader inFromServer= new BufferedReader(new InputStreamReader(sock.getInputStream()));
sentence=inFromServer.readLine();
System.out.println("FROM SERVER: " + sentence);
fis.close();
os.close();
sock.close();
}
}
的問題是,客戶沒有收到來自服務器的響應,我想沿着這些線路:
BufferedReader inFromServer= new BufferedReader(new InputStreamReader(sock.getInputStream()));
sentence=inFromServer.readLine();
因爲沒有他們服務器發送響應。
有關如何解決它的任何建議?不停留在的BufferedReader
你怎麼運行這個?在兩個單獨的threds?如果是的話,那麼兩個都是活着的? –
在兩種不同的應用程序中 – sqtd
是否在你的應用程序關閉之前關閉另一個可以讀取/寫入套接字?檢查你是否過快地關閉套接字。 –