Vraag : TCP van Java - Code Decaprecated

O.K. werd ik zo een Cliënt en een Server. De code wordt nochtans omhoog bevestigd en het compileert zonder fouten. Ik vervang enkel DataStreamInput met BufferedReader nochtans werkt de Output niet. De server schijnt niet om naar de cliënten te verzenden…. kunt u kerels helpen?

Server.java:

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:
import java.io.*;
de invoer java.net. *;
de invoer java.util.*;

openbare klassenServer {

    de statische Contactdoos clientSocket = verklaart nietig;
    statische ServerSocket serverSocket = verklaart nietig;

	statische clientThread t [] = nieuwe clientThread [10];


    openbare statische nietige leiding (Koord args []) {

	// de standaardhaven



	int. port_number=2222;

	als (args.length < 1)
	    {
		System.out.println („Gebruik: de Server \ n van Java " +
				   „Nu gebruikend haven number= " +port_number);
	    } anders {
		port_number=Integer.valueOf (args [0]) .intValue ();
	    }

        probeer {
	    serverSocket = nieuwe ServerSocket (port_number);
        }
        vangst (IOException e)
	    {System.out.println (e);}

	terwijl (waar) {
	    probeer {
		clientSocket = serverSocket.accept ();
		voor (int. i=0; i<=9; i++) {
		    als (t [I] ==null)
			{
			    (t [I] = nieuwe clientThread (clientSocket, t)).start ();
			    onderbreking;
			}
		}
	    }
	    vangst (IOException e) {
		System.out.println (e);}
	}
    }
}

de klasse clientThread breidt Draad uit {

    BufferedReader is = nietig verklaart;
    PrintStream os = verklaart nietig;
    De contactdoos clientSocket = verklaart nietig;
    clientThread t [];
    Willekeurig broodje = nieuwe Willekeurig ();

    openbare clientThread (Contactdoos clientSocket, clientThread [] t) {
	this.clientSocket=clientSocket;
        this.t=t;
    }

    openbare nietige looppas ()
    {
		System.out.println („Controle 1“);
	De lijn van het koord;
        De naam van het koord;
        int. py;
	probeer {
		System.out.println („Controle 2“);
	    is = nieuwe BufferedReader (nieuwe InputStreamReader (clientSocket.getInputStream ()));
	    System.out.println („Controle 3“);
	    os = nieuwe PrintStream (clientSocket.getOutputStream ());
	    System.out.println („Controle 4“);
	    int. px = roll.nextInt (6);
	    os.println („ga uw naam in. “);
	    System.out.println („Controle 5“);
	    naam = is.readLine ();
	    System.out.println („Controle 6“);

	    os.println („Hello „+name+“ aan onze praatjeruimte. Uw aanval: “ + px + „niet het verlof \ gaat /quit in een nieuwe lijn in“);
	    voor (int. i=0; i<=9; i++)
		als (t [I]! =null && t [I]! =this)
		    t [I] .os.println („*** ging A nieuwe gebruiker „+name+“ de praatjeruimte in!!! ***“);
	    terwijl (waar) {
		lijn = is.readLine ();
                als (line.startsWith („/quit“)) onderbreking;
		voor (int. i=0; i<=9; i++)
		    als (t [I]! =null) t [I] .os.println („< " +name+“: „+px+ " > „+line);
	    }
	    voor (int. i=0; i<=9; i++)
		als (t [I]! =null && t [I]! =this)
		    t [I] .os.println („*** de gebruiker „+name+“ verlaat de praatjeruimte!!! ***“);

	    os.println („*** tot ziens „+name+“ ***“);

	    voor (int. i=0; i<=9; i++)
		als (t [I] ==this) t [I] =null;

	    is.close ();
	    os.close ();
	    clientSocket.close ();
	}
	vangst (IOException e) {};
    }
} 


For dit dossier… het werkte maar het was afgekeurde zo I changed

1:
is = nieuwe DataInputStream (clientSocket.getInputStream ());

to
1:
is = nieuwe BufferedReader (nieuwe InputStreamReader (clientSocket.getInputStream ()))


and DataInputStream == ongeldig aan BufferedReader is is == null.

Client.java

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:
import java.io.*;
de invoer java.net. *;

de openbare klassenCliënt voert Jaagbaar uit {

    de statische Contactdoos clientSocket = verklaart nietig;
    statische PrintStream os = verklaart nietig;
    statische DataInputStream is = nietig verklaart;
    statische inputLine BufferedReader = verklaart nietig;
    statische gesloten van Boole = vals;

    openbare statische nietige leiding (Koord [] args) {

	// de standaardhaven

	int. port_number=2222;
        Koord host= " localhost ";

	als (args.length < 2)
	    {
		System.out.println („Gebruik: de Cliënt \ n van Java " +
				   „Nu gebruikend host= " +host+“, port_number= " +port_number);
	    } anders {
		host=args [0];
		port_number=Integer.valueOf (args [1]) .intValue ();
	    }

	probeer {
            clientSocket = nieuwe Contactdoos (gastheer, port_number);
            inputLine = nieuwe BufferedReader (nieuwe InputStreamReader (System.in));
            os = nieuwe PrintStream (clientSocket.getOutputStream ());
            is = nieuwe DataInputStream (clientSocket.getInputStream ());
        } vangst (UnknownHostException e) {
            System.err.println („ben niet van gastheer „+host) op de hoogte;
        } vang (IOException e) {
            System.err.println („kon niet I/O worden voor de verbinding aan de gastheer „+host);
        }

        als (clientSocket! = ongeldige && os! = is ongeldige &&! = verklaar) nietig {
            probeer {

                nieuwe Draad (nieuwe Cliënt ()).start ();

		terwijl (! closed) {
                    os.println (inputLine.readLine ());
                }

		os.close ();
		is.close ();
		clientSocket.close ();
            } vangst (IOException e) {
                System.err.println („IOException:  “ + e);
            }
        }
    }

    openbare in werking gestelde leegte () {
	responseLine van het koord;

	// houdt bij de lezing van de contactdoos tot wij „tot ziens“ van de server ontvangen,
	// zodra wij ontvingen dat dan wij willen breken.
	probeer {
		System.out.println („Tryin.g…“);
	    terwijl ((responseLine = inputLine.readLine ()) ! = verklaar) nietig {
		System.out.println (responseLine);
		als (responseLine.indexOf („*** tot ziens“)! =) onderbreking -1;
	    }
            closed=true;
	} vangst (IOException e) {
	    System.err.println („IOException:  “ + e);
	}
    }
} 


For Client.java, ook had decaprecated eveneens code zodat verwijderde ik:

1:
is = nieuwe DataInputStream (clientSocket.getInputStream ());


and om het even welke lijn verving met is aan inputLine.

Can u dit bevestigt?

Antwoord : TCP van Java - Code Decaprecated

Negen keer van de tien zijn deze problemen toe te schrijven aan gebrek aan coördinatie tussen cliënt schrijft en de server leest en vice versa. Bijvoorbeeld, wegens stromen die, zal uw programma blokkeren omhoog sluiten als het probeert om te lezen wanneer niets is geschreven noch geweest.

Ik stel voor u door uw code met een fijne getande kam voor dit soort probleem gaat
Andere oplossingen  
 
programming4us programming4us