我正在製作一個客戶端服務器應用程序,並使用以下代碼來交換服務器和客戶端的數據。無法使用套接字上的BufferedReader/Writer發送和接收數據
服務器的發送和接收代碼:
public void run() {
try {
BufferedReader input = new BufferedReader(new InputStreamReader(socketNew.getInputStream()));
String message=input.readLine();
while(message.length()!=0)
{
for(Socket s:socs) //socs is a list containing all the connected sockets
{
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
writer.write(message);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
客戶端的發送方法:
private void send_data() {
BufferedWriter writer;
try {
writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write(this.name+textField.getText());
textField.setText("");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
客戶的獲得方法:
public void receive_data(){
BufferedReader input;
try {
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message=input.readLine();
while(message.length()!=0)
{console(message);}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我沒有任何數據交換的B/W的服務器和clients.Can有人可以幫我嗎?
我做到了,但無濟於事。 –
沒有足夠的信息來幫助你進一步。嘗試調試您的代碼。 – Joni
我在最後添加了斷路器,瞧,問題得到了解決。感謝man.I也必須稍微改變一下代碼,因爲每次用戶想要發送和接收數據時都會創建新的緩衝區。一個問題。再次感謝人。 –