Ik ben met JAVA een ICY server aan het maken. Dus net zoiets als Shoutcast. ICY is in princiepe gewoon HTTP met een aantal extra headers. De code die ik tot nu toe heb is:
Niet erg netjes, dat weet ik
.
Als ik de server opstart kan ik er met winamp op port 8000 op inloggen. Maar het streamen werkt niet. Winamp komt met de melding "Error syncing to mpeg". Dit komt volgens mij omdat het mp3'tje een bitrate van 192kb/s heeft, maar mijn java progsel probeert zoveel mogelijk data tegelijk over de socket te sturen. Is er een manier in JAVA om het verkeer dat over de socket gaat te limiteren?
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
| import java.util.*;
import java.io.*;
import java.net.*;
public class Apl {
private BufferedReader in;
private PrintWriter out;
Socket s;
ServerSocket ss;
public static void main(String args[]) {
new Apl();
}
public Apl() {
try {
BufferedReader in = new BufferedReader(
new FileReader(
new File("test.mp3")));
ss = new ServerSocket(8000);
s = ss.accept();
out = new PrintWriter(s.getOutputStream());
out.println("ICY 200 OK");
out.println("icy-notice1:blaat");
out.println("icy-notice2:blaat");
out.println("icy-name:Unnamed Server");
out.println("icy-genre:");
out.println("icy-url:http://www.shoutcast.com");
out.println("icy-pub:1");
out.println("icy-br:192");
out.println("Datastream");
while(in.ready()) {
out.print(in.read());
}
s.close();
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
}
} |
Niet erg netjes, dat weet ik
Als ik de server opstart kan ik er met winamp op port 8000 op inloggen. Maar het streamen werkt niet. Winamp komt met de melding "Error syncing to mpeg". Dit komt volgens mij omdat het mp3'tje een bitrate van 192kb/s heeft, maar mijn java progsel probeert zoveel mogelijk data tegelijk over de socket te sturen. Is er een manier in JAVA om het verkeer dat over de socket gaat te limiteren?