ネットワークに接続されたデバイスをエミュレートし、特定のポートを介して信号を送信するプログラムを作成したいと考えています。
デバイスはネットワークに接続され、ポートを介してデータを送信します。サーバー (またはコンピューター) で、IP:PORT をコンピューターの仮想 COM ポートに関連付ける Lantronix の CPR Manager v.4.3.0.1 を実行しています。COM ポートをリッスンしてアクションを実行する Java プログラムがあります。これはデバイスでうまく機能します。
Socket クラスを使用して接続を実行する Java アプリを作成しようとしましたが、成功しませんでした。CPR 側では、最初の行が実行されたときにのみ切断を登録します。
Socket socket = new Socket("192.168.1.160", 8888);
また、UDP メソッドを使用して試してみましたが、これまでに記録されたメッセージはありません。
どんな助けでも大歓迎です。また、Java に可能な解決策がない場合は、他の言語でも問題ありません。
編集:
データを送信しようとしているJavaコードは次のとおりです
public static void main(String[] args){
try{
Socket socket = new Socket("192.168.1.160", 8888);
if(socket.isConnected()){
System.out.println("It is connected.");
socket.setKeepAlive(true);
System.out.println(socket.isBound());
}else{
System.out.println("It is not connected.");
}
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in =
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String msg = "32";
for(int i = 0; i < 50; i++){
out.println(msg);
}
//Receive a reversed message
msg = in.readLine();
System.out.println("Server : " + msg);
}catch(Exception ioe){
ioe.printStackTrace();
}
}
ありがとう。
アップデート
私はデバイスの何人かと連絡を取り、ASCII コマンド プロトコルを送信する TCP/IP 接続を介して直接通信する方法があることを示してくれました。これにより、あらゆるレベルでより詳細な制御が可能になります。
そのため、これらのプロトコルを使用して通信できる Java プログラムを作成しています。私はもう通信ポートを使用していないので、ボーレート、データビット、ストップビットなどをエミュレートしています。動作するものがある場合は投稿します。
すべての助けをありがとう。