# TCP Socket und Server int senden und empfangen



## Marcello (8. Mai 2007)

Hi,

mein Problem ist, dass ich von einem Client an den Server eine einzugebende Zahl senden möchte - diese soll durch Berechnungen verändert werden und an den Client zurückgeschickt werden.

Das erste Senden und empfangen klappt noch problemlos beim zweiten wird eine numberformat exc. geschmissen und ich verstehe nicht warum.

Denn eigentlich läuft beides gleich ab - hier der Code:

Server:


```
ServerSocket server = new ServerSocket(1234);
		Socket socket = server.accept();
		BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
		int zahl = 0;
		String text = in.readLine();
		zahl = Integer.parseInt(text);
		zahl += 1;
		out.write(zahl);
		out.newLine();
		out.flush();
		out.close();
		in.close();
		server.close();
```

Client:


```
Socket socket = new Socket("localhost", 1234);
		BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
		BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		out.write(In.getText("Bitte Zahl eingeben: "));
		out.newLine();
		out.flush();	
		String text = in.readLine();
		int zahl = Integer.parseInt(text);
		System.out.println(zahl + " hallo");
```

Der Fehler tritt auf beim Client in Zeile 9.

Bin für jede Hilfe und / oder Denkanstöße dankbar.

/edit: zufallszahl in zahl geändert


----------



## mic_checker (8. Mai 2007)

Was sagt der Stack Trace denn? Und was klappt noch?

Nehm mal an das Senden vom Client an den Server klappt noch, nachdem du eine Zahl eingegeben hast. Der Server empfängt die und will irgendeine Zahl zurücksenden (wegen Zufallszahl).

Wo generierst du deine Zufallszahl ? Kannst ja mal wenns geht mehr posten.


----------



## Marcello (8. Mai 2007)

Huch also die zufallszahl ist noch alter Code sollte eigentlich zahl heissen.

Fehler:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at Client.main(Client.java:20)


Wobei die beanstandete Zeile diese ist:

int zahl = Integer.parseInt(text);


----------



## anfänger15 (9. Mai 2007)

Wie die fehlermeldung schon sagt text ist  null und ein leerer String kann nicht in einen Integer wert umgewandelt werden.


----------



## Marcello (9. Mai 2007)

Ähm ja hab ich mir schon fast gedacht,
aber die Frage ist ja wieso er nichts sendet bzw. null sendet.
Denn das erste Schicken vom Client zum Server funktioniert ja auch und das Schema sollte ja das gleiche sein.


----------



## kleiner_held (9. Mai 2007)

Du verwendest im Server out.write(zahl);
Das heisst dein int wird in einen char umgewandelt und nicht in einen String.

```
out.write(Integer.toString(zahl));
```
auf Zeile 11 im Server ist richtig.


----------



## Marcello (10. Mai 2007)

werd's gleich mal testen, schonmal danke

/Edit: Vielen Dank, das war das Problem - kam ich irgendwie nicht drauf...  :roll:


----------

