| Autor |
Nachricht |
Gast
|
|
|
Nach oben |
Gast
|
|
|
Nach oben |
Gast
|
Verfasst am: 29. 01. 2008, 12:56 Titel: |
Zitieren Druckversion downloaden (dieser Post) |
|
Hi, die Frage ist beantwortet, ein Kumpel der es in Java voll drauf hat,
hats mir programmiert. Doch nicht über UDP, TCP ist sicherer.
 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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class Connector {
class DataReaderThread extends Thread {
private Reader breader;
private boolean interrupt;
private boolean stopped;
public DataReaderThread(Reader reader) {
this.stopped = false;
this.breader = reader;
this.interrupt = false;
}
public synchronized boolean getStopped() {
return stopped;
}
public void run() {
try {
stopped = false;
while (!breader.ready() && !interrupt) {
Thread.sleep(300);
}
while (!interrupt) {
System.out.println(breader.read());
Thread.sleep(50);
}
stopped = true;
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Override
public synchronized void interrupt() {
interrupt = true;
}
}
private Socket socket;
private BufferedReader br;
private boolean isConnected;
private DataReaderThread drt;
public Connector() {
isConnected = false;
}
public void connect(String ip, int port) {
try {
InetAddress ia = InetAddress.getByName(ip);
socket = new Socket(ia.getHostAddress(), port);
br = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
isConnected = true;
System.out.println("Connected to " + ip + ":" + port);
System.out.println("Waiting for data ...");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void readContinously() {
if (!isConnected) {
System.out.println("Connect first!");
return;
}
if (drt != null) {
drt.interrupt();
}
drt = new DataReaderThread(br);
drt.start();
}
public void disconnect() {
if (!isConnected) {
System.out.println("Not connected!");
return;
}
drt.interrupt();
try {
while (!drt.stopped) {
Thread.sleep(100);
}
socket.close();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Connector c = new Connector();
c.connect("192.168.178.50", 10001);
c.readContinously();
try {
Reader reader = new InputStreamReader(System.in);
while (true) {
char input = (char) reader.read();
if (input == 'q') {
c.disconnect();
System.out.println("disconnected!");
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
} | |
Das Programm läuft super.
Viele Grüsse...
rom4o | |
|
Nach oben |
Impressum & Kontakt
Die Vervielfältigung der auf den Seiten www.java-forum.org enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.
|