Problem z prostą aplikacją klient-serwer

Problem z prostą aplikacją klient-serwer
IJ
  • Rejestracja:około 7 lat
  • Ostatnio:około 6 lat
  • Postów:139
0

Witam. Uczę się z tutoriala na YT programować aplikacje klient-serwer. mam takie dwa kody:

Klient:

Kopiuj
import java.io.DataInputStream;
import java.net.*;
import java.io.IOException;

class Client {
    public static void main(String[] args) throws IOException {
        Socket s = new Socket("127.0.0.1", 3001);

        DataInputStream dis = new DataInputStream(s.getInputStream());

        String msg = dis.readUTF();

        System.out.println(msg);


    }
}

Serwer:

Kopiuj
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.*;

class Server
{
    public static void main(String[] arg) throws IOException
    {
        try
        {
            ServerSocket server = new ServerSocket(3001);

            System.out.println("Connected!!");

            DataOutputStream dos = new DataOutputStream(s.getOutputStream());
            dos.writeUTF("Welcome to socket!!");
        }
        catch(Exception e){}


    }
}

InteliJ podświetla na czerwono literę "s" w piętnastej lini. Nie wiem co z tym zrobić. Gościowi na YT działało dobrze.

atmal
  • Rejestracja:około 8 lat
  • Ostatnio:7 dni
  • Postów:913
0

Podaj link to tego tutka i zobaczy się dlaczego u niego działa. s jest podkreślone dlatego że nie ma nigdzie takiej zmiennej.


Failure of one test is a tragedy, failure of fifty is a statistic.
Sceptyczny Dinozaur
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:390
0
IlikeJava napisał(a):

Witam. Uczę się z tutoriala na YT programować aplikacje klient-serwer. mam takie dwa kody:

Klient:

Kopiuj
import java.io.DataInputStream;
import java.net.*;
import java.io.IOException;

class Client {
    public static void main(String[] args) throws IOException {
        Socket s = new Socket("127.0.0.1", 3001);

        DataInputStream dis = new DataInputStream(s.getInputStream());

        String msg = dis.readUTF();

        System.out.println(msg);


    }
}

Serwer:

Kopiuj
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.*;

class Server
{
    public static void main(String[] arg) throws IOException
    {
        try
        {
            ServerSocket server = new ServerSocket(3001);

            System.out.println("Connected!!");

            DataOutputStream dos = new DataOutputStream(s.getOutputStream());
            dos.writeUTF("Welcome to socket!!");
        }
        catch(Exception e){}


    }
}

InteliJ podświetla na czerwono literę "s" w piętnastej lini. Nie wiem co z tym zrobić. Gościowi na YT działało dobrze.

sr---ło a nie działało dobrze, albo jesteś ślepy
jak ma działać dobrze jak nie wiadomo na czym wywołujesz metode getOutputStream() ?
powinieneś ja wywołać na sockecie

czyli pod linią
ServerSocket server = new ServerSocket(3001);

dodaj sobie taką linię:
Socket s = server.accept();

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.