我寫的代碼可以發送消息給服務器。問題是,如果我捕捉Wireshark的溝通,從我的應用程序發送我的字符串的消息是這樣的:Telnet按字符發送字符串
hello - 1 packet
如果我檢查的Telnet發送相同的消息CMD端子消息是這樣的:
h - 1 packet
e - 1 packet
l - 1 packet
l - 1 packet
o - 1 packet
所以最後它逐個字符地發送整個字符串。服務器可以從cmd Telnet終端讀取消息並回復,但無法讀取從我的應用程序發送的消息。有什麼方法可以發送像這樣的字符串嗎?我不是編程服務器。我只編程客戶端,因此重要的是服務器必須能夠正確地讀取消息。非常感謝!
PrintWriter out;
BufferedReader in;
public void run() {
// TODO Auto-generated method stub
try {
InetAddress serverAddr = InetAddress.getByName(hostname);
// create a socket to make the connection with the server
socket = new Socket(serverAddr, port);
Log.i("Terminal", "Socket connecting");
try {
// send the message to the server
out = new PrintWriter(
new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream())), true);
Log.i("Terminal", "Connected.");
// receive the message which the server sends back
in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
}catch...
}catch...
}
//send code
public void sendMessage(String message) {
if (out != null && !out.checkError()) {
out.println(message);
out.flush();
Log.i("Terminal", "Message sent.");
}
}
請定義「無法讀取從我的一個發來的消息pplication」。服務器無法區分這兩種情況。你必須做一些其他的錯誤,例如不正確或不存在的行終止。 – EJP