2015-08-19 2 views
0

Я пробовал много примеров, и никто не работал, как я ожидаю. Что мне нужно?Java-сокеты TCP отправлять и получать

  1. Отправить пакет через IP-адрес и порт.
  2. Дождитесь ответа сервера и ближайшего разъема.

Пример:

[Client] Send: "Hi server" 
[Client] Wait 
[Server] Send: "Hi client" 
[Client] Receive response 
[Client] Close socket 

мне просто нужно TCP-клиент, на стороне сервера решена.

Пробовал: http://www.careerbless.com/samplecodes/java/beginners/socket/SocketBasic1.php

Мой код

public class SendPacket { 

    public void send() throws Exception{ 

     Socket socket = null; 
     ObjectOutputStream oos = null; 
     ObjectInputStream ois = null; 

     socket = new Socket(ip, port); 
     oos = new ObjectOutputStream(socket.getOutputStream()); 

     String msg = "DSPSYSSTS"; 
     oos.write(msg.getBytes()); 
     oos.flush(); 

     //read the server response message 
     ois = new ObjectInputStream(socket.getInputStream()); 
     String message = (String) ois.readObject(); 

     RunWinCmd runCmd = new RunWinCmd(); 
     runCmd.run("notepad.exe \"" + message + "\""); 
     //close resources 
     ois.close(); 
     oos.close(); 

    } 
} 
+1

Покажите нам, что вы пытались .. – HyperZ

+0

, что не работал, как вы ожидали? – user547995

ответ

1

вы должны инициализировать потоки в определенном порядке.

попробовать это (не проверено):

public class SendPacket { 

    public void send() throws Exception{ 

     Socket socket = null; 
     ObjectOutputStream oos = null; 
     ObjectInputStream ois = null; 

     socket = new Socket(ip, port); 
     oos = new ObjectOutputStream(socket.getOutputStream()); 
     ois = new ObjectInputStream(socket.getInputStream()); 

     String msg = "DSPSYSSTS"; 
     oos.write(msg.getBytes()); 
     oos.flush(); 

     //read the server response message 
     String message = (String) ois.readObject(); 

     RunWinCmd runCmd = new RunWinCmd(); 
     runCmd.run("notepad.exe \"" + message + "\""); 
     //close resources 
     ois.close(); 
     oos.close(); 
     socket.close();//!!!! 

    } } 

 Смежные вопросы

  • Нет связанных вопросов^_^