服務器端
線程類

客戶端為flash 需要的朋友可以到附件里面下載
1
import java.net.Socket;
2
import java.net.ServerSocket;
3
import java.io.PrintWriter;
4
import java.io.BufferedReader;
5
import java.io.InputStreamReader;
6
7
8
9
public class XMLServer
10
{
11
12
public void start() throws Exception
13
{
14
String xml = "<cross-domain-policy>";
15
xml = xml + "<allow-access-from domain=\"192.168.9.59\" to-ports=\"5000,5001,8080\" />";
16
xml = xml + "<allow-access-from domain=\"localhost\" to-ports=\"5000,5001,8080\" />";
17
xml = xml + "</cross-domain-policy>";
18
19
ServerSocket serverSocket = new ServerSocket(5000);
20
System.out.println("等待客戶端連接
");
21
while(true)
22
{
23
try
24
{
25
//新建一個連接
26
Socket socket = serverSocket.accept();
27
System.out.println("連接成功
");
28
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
29
PrintWriter pw = new PrintWriter(socket.getOutputStream());
30
//接收用戶名
31
char[] by = new char[22];
32
br.read(by,0,22);
33
String head = new String(by);
34
System.out.println("消息頭:" + head + ":");
35
//收到客戶端的策略請求
36
if(head.equals("<policy-file-request/>"))
37
{
38
pw.print(xml + "\0");
39
pw.flush();
40
}
41
else
42
{
43
//正常連接
44
ServerThread thread = new ServerThread(socket);
45
thread.start();
46
}
47
}
48
catch (Exception e)
49
{
50
System.out.println("服務器出現異常!" + e );
51
}
52
}
53
}
54
public static void main(String[] args)
55
{
56
try
57
{
58
new XMLServer().start();
59
}
60
catch (Exception e)
61
{
62
System.out.println("socket異常:" + e);
63
}
64
65
}
66
}

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

線程類
1
import java.net.Socket;
2
import java.io.BufferedReader;
3
import java.io.PrintWriter;
4
import java.io.InputStreamReader;
5
6
/*
7
*子線程,與一個flash客戶端對應,負責收發數據
8
*/
9
public class ServerThread extends Thread
10
{
11
private Socket socket;
12
private BufferedReader input;
13
private PrintWriter output;
14
15
public ServerThread(Socket socket)
16
{
17
this.socket = socket;
18
}
19
20
public void run()
21
{
22
System.out.println("------------啟動一個線程---------------");
23
//向所有的用戶發送當前用戶登陸的信息
24
try
25
{
26
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
27
output = new PrintWriter(socket.getOutputStream());
28
while(true)
29
{
30
//System.out.println("input:" + input);
31
String msg = input.readLine();
32
if(msg == null)
33
{
34
break;
35
}
36
System.out.println("收到客戶端的數據:" + msg);
37
38
msg="Connection success!!";
39
output.print("服務器返回:" + msg + "\0");
40
output.flush();
41
}
42
System.out.println("子線程結束了");
43
}
44
catch(Exception error)
45
{
46
System.out.println("子線程發生異常");
47
try
48
{
49
input.close();
50
output.close();
51
}
52
catch (Exception er)
53
{
54
System.out.println("關閉資源發生異常");
55
}
56
System.out.println("子線程結束了");
57
}
58
}
59
}

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


客戶端為flash 需要的朋友可以到附件里面下載