Amanuel Negash Ответов: 1

Помогите мне подключить Мой arduino ethernet shield к моему ноутбуку с помощью java


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 + "\n");
ta.appendText("Area received from the server is "
+ area + '\n');
}
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() + '\n');
}
}
}








****************************************************************************************************************************************************************************
the following is my etherent arduino code

#include <ethernet.h>
#include <spi.h>
byte mac[] = {0x90, 0xf2, 0xda, 0x0e, 0x98, 0x34 };

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();
}

What I have tried:

I have disabled the firewall and I can ping the server.

[no name]

Как насчет предоставления подробностей того, что на самом деле происходит? Куда же он девается?

1 Ответов

Рейтинг:
0

Amanuel Negash

на самом деле ничего не происходит java клиент заканчивает говорить

Error:java.net.SocketTimeoutException: Receive timed out