ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
984
984
EMPFEHLEN
-
Hallo,
ich habe mal ein bischen mit sockets rum gespielt aber viel Erfahrung hab ich da jetzt nicht, meine frage, die ich dringend beantwortet haben müsste wäre, wie ich mit Java per TCP IP ein komando an einen Klienten schicken kann dessen IP ich weis.
Ich soll einen Lableprinter zum Laufen bekommen und dazu muss ich mit ihm über TCP IP kommunizieren.
Was brauch ich dazu für ein Socket?
Bitte helft mir, ich stehe etwas unter Zeitdruck
Sönke
-
Ja kannst du, mit einem normalen Socket.
Hier solltest du eigentlich alle nötigen Infos finden:
http://java.sun.com/javase/6/docs/ap...et/Socket.htmlHallo Nuray!
-
danke für die Antwort, welchen port nehmen denn so drucker meistens?
-
habe ein weiteres Problem und zwar schmeißt er mir immer socketerror.
hier mein code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; /** * This Class has to test the communication with the termal Ethernet Printer * "Orient BTP-L580" and prints an test label. * * @author Soenke Paschko * @version 1.0 */ public class Main { /** * This is the main method * @param args */ public static void main(String[] args) { try { Socket socket = new Socket("172.16.8.27", 4000); System.out.println("Socket is initialized"); // Preparing new message schreibeNachricht(socket,"LF"); System.out.println("Linefeed"); //String empfangeneNachricht = leseNachricht(socket); //System.out.println("Response: " + empfangeneNachricht); } catch (UnknownHostException e) { System.out.println("Socketerror unknown host"); } catch (IOException e) { System.out.println("Socketerror IOExeption"); } } public static void schreibeNachricht(java.net.Socket socket, String nachricht) throws IOException { PrintWriter printWriter = new PrintWriter( new OutputStreamWriter( socket.getOutputStream())); printWriter.print(nachricht); printWriter.flush(); } public static String leseNachricht(java.net.Socket socket) throws IOException { BufferedReader bufferedReader = new BufferedReader( new InputStreamReader( socket.getInputStream())); char[] buffer = new char[200]; int anzahlZeichen = bufferedReader.read(buffer, 0, 200); // blockiert bis Nachricht empfangen String nachricht = new String(buffer, 0, anzahlZeichen); return nachricht; } }
Der fehler ist IO Exeption
-
18.06.09 15:14 #5
Also entweder verstehe ich nicht so ganz, was du machen möchtest oder du stellst dir alles zu einfach vor.
Einem Drucker kannst du heute nicht mehr einfach sagen "Druck mir mal das Zeichen X aus". Es ging früher mit den Nadeldruckern ganz gut, heute ist es nicht mehr so einfach. Denn heute gibt es Treiber, die mit dem Drucker kommunizieren. Um so etwas nachzubilden, braucht man schon etwas mehr Geschick (und vor allem ZEIT!). Wenn du Glück hast, spricht der Drucker Postscript.
Wenn du es tatsächlich versuchen möchtest, gibt es zwei Möglichkeiten:
1) Du besorgst dir die Doku zu dem Drucker, darin stehen alle möglichen Befehle drin. Da wird es sehr schwer ran zu kommen sein.
2) Du holst dir den normalen Treiber des Druckers, druckst etwas aus und schneidest den Netzwerktraffic in dem Moment mit. Daraus kannst du dann Reverse Engineeren.
Auf welchen Port du commecten musst, kannst du herausfinden, indem du einfach nmap über die IP des Druckers jagst.
-
Jein, ich habe einen labledrucker mitsammt der dokus und den befehlen. nun möchte ich diese befehle senden. leider wird meine verbindung immer zurückgewiesen. laut doku sollte der port 9100 zur kommunikation mit dem printer genutzt werden.
ansonsten ist das so OK`? wenn ich einfach nur Befehle an den Drucker senden will?
Die Befehle sind im übrigen schon in ascii codiert. d.h. die Asciiwerte von LF bilden wen befehl.
-
18.06.09 16:08 #7
Fangen wir dann mal langsam an unser Problem zu analysieren.
Bist du sicher, dass du die richtige IP des Druckers hast? Lässt sich das Ding anpingen?
Bist du dir sicher, dass der Port richtig ist?
Brauchst du eine TCP oder UDP Verbindung?
Wenn es TCP ist, kannst du ganz einfach prüfen, ob alles richtig ist, indem du einfach das Programm "telnet" dafür benutzt.
-
so hab jetzt die Beispielsoftware installiert und die geht auch nicht. pingen kann ich das gerät, laut doku ist der port 9100 dafür zuständig. habs auch schon mit Terraterm und telnet versucht, die verbindung wird aber immer zurückgewiesen.
Ich werde mich nochmal mit dem Verkäufer kurzschließen.
Ähnliche Themen
-
Daten aus Kontaktformular mit PHP an E-Mail Adresse senden
Von qwert im Forum PHPAntworten: 4Letzter Beitrag: 23.10.10, 19:57 -
ModRewrite - adresse.de/php-seiten ohne Endung und adresse.de/Benutzer
Von Kalma im Forum Hosting & WebserverAntworten: 3Letzter Beitrag: 11.11.09, 12:49 -
Datei mit angabe des dateipfads an eigene ip adresse senden
Von callofduty im Forum VisualStudio & MFCAntworten: 0Letzter Beitrag: 28.12.08, 15:33 -
textarea: per POST Text eingeben und wieder senden => senden funktioniert nicht
Von acquire im Forum PHPAntworten: 2Letzter Beitrag: 02.05.08, 08:46 -
Outlook 2003 Ordner für die Mail adresse, ein anderer Ordner für die andere Adresse
Von dartox im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 18.12.04, 16:30





Zitieren
Login





