Problem z prostą aplikacją klient-serwer

0

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

Klient:

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:

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.

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.

0
IlikeJava napisał(a):

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

Klient:

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:

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();

1 użytkowników online, w tym zalogowanych: 0, gości: 1