Question
I am trying to connect my arduino ethernet shield and a java application to communicate. I could not achieve that any one can help. this
I am trying to connect my arduino ethernet shield and a java application to communicate. I could not achieve that any one can help.
this is my java code
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package client;
import java.io.*; import java.net.*; import java.util.logging.Level; import java.util.logging.Logger; import javafx.application.Application; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.ScrollPane; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.scene.layout.BorderPane; import javafx.stage.Stage;
/** * * @author amanuel Negash */
public class Client extends Application { // IO streams DataOutputStream toServer = null; DataInputStream fromServer = null;
@Override // Override the start method in the Application class public void start(Stage primaryStage) { // Panel p to hold the label and text field BorderPane paneForTextField = new BorderPane(); paneForTextField.setPadding(new Insets(5, 5, 5, 5)); paneForTextField.setStyle("-fx-border-color: green"); paneForTextField.setLeft(new Label("Enter a radius: "));
TextField tf = new TextField(); tf.setAlignment(Pos.BOTTOM_RIGHT); paneForTextField.setCenter(tf);
BorderPane mainPane = new BorderPane(); // Text area to display contents TextArea ta = new TextArea(); mainPane.setCenter(new ScrollPane(ta)); mainPane.setTop(paneForTextField);
// Create a scene and place it in the stage Scene scene = new Scene(mainPane, 450, 200); primaryStage.setTitle("Client"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stage
tf.setOnAction(e -> { try { // Get the radius from the text field double radius = Double.parseDouble(tf.getText().trim());
// Send the radius to the server toServer.writeDouble(radius); toServer.flush();
// Get area from the server double area = fromServer.readDouble();
// Display to the text area ta.appendText("Radius is " + radius + " "); ta.appendText("Area received from the server is " + area + ' '); } catch (IOException ex) { System.err.println(ex); } }); try { SocketAddress sockaddr = new InetSocketAddress("172.17.31.47", 59637); // Create your socket Socket socket = new Socket(); // Connect with 10 s timeout socket.connect(sockaddr, 999999999);;
// Create an input stream to receive data from the server fromServer = new DataInputStream(socket.getInputStream());
// Create an output stream to send data to the server toServer = new DataOutputStream(socket.getOutputStream()); socket.close(); } catch (IOException ex) { ta.appendText(ex.toString() + ' '); } } }
the following is my etherent arduino code
#include
EthernetClient client; void setup() { Serial.begin(9600); Ethernet.begin(mac); server.begin(); delay(1000); Serial.print("server is at "); Serial.println(Ethernet.localIP()); server.begin();
} void loop() { //Serial.println("loop"); client = server.available(); char incoming;
if (client) { Serial.println("Client connected"); while(client.connected()) { if (client.available()) { incoming = client.read(); Serial.print(incoming); client.print(incoming); } } Serial.println("Client disconnected"); } client.stop(); }
I got the following erroer
Enter a radius: java.net ConnectException: Connection timed out: connectStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started