저는 지금이 프로그램을 몇 시간 동안 해왔습니다. 그래서 저는 뇌가 죽어서 왜 이런 오류가 발생하는지 알 수 없습니다. Java 프로그래밍에 익숙하지 않아도 제 경우에는 많은 도움이되지 않습니다.내 서버/클라이언트 대화방 프로그램에서 이러한 오류가 발생하는 이유는 무엇입니까?
On line 27 - "error: method Add in class ClientManager cannot be applied to given types;"
On line 34 - "error: cannot find symbol"
Also line 34 - "error: cannot find symbol"
On line 42 - "error: cannot find symbol"
지금 여기 특정 라인에 대한 내 코드의 세그먼트입니다
Line 27 - CM.Add();
Line 34 - MyClient Client = new MyClient(Socket, CM);
Line 42 - Client.SendToAllClients(S);
여기 서버 클래스에 대한 내 전체 코드입니다. 클라이언트 클래스는 완벽하게 작동합니다.
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Server
{
public static void main(String[] args) throws Exception
{
new MyServer().start();
}
}
class MyServer extends Thread
{
ServerSocket SS = new ServerSocket(11200);
Socket S;
ClientManager CM = new ClientManager();
public void run()
{
while(true)
{
S = SS.accept();
CM.Add();
}
}
}
class MyClient extends Thread
{
MyClient Client = new MyClient(Socket, CM);
Scanner S;
public void run()
{
while(true)
{
S = new Scanner(System.in);
Client.SendToAllClients(S);
}
}
public void Send(String S)
{
PrintWriter.println(S);
}
}
class ClientManager
{
MyClient[] X = new MyClient[15];
int num = 0;
public synchronized void Add(MyClient C)
{
X[num] = C;
num++;
C.start();
}
public synchronized void SendToAllClient(String S)
{
int i;
for(i = 0;i < num;i++);
{
X[i].Send(S);
}
}
}
업데이트 : 내가 당신에게 당신이 이러한 오류를 얻고있는 이유를 알 수 CM.Add();
27)'CM.add()'에는 매개 변수가 필요합니다. 34)'MyClient Client = new MyClient (Socket, CM);'초기화는 생성자 또는 메소드에 있어야합니다. 'Client.SendToAllClients (S); 42) MyClient (타입'Client')는'SendToAllClients' 메소드를 가지고 있지 않습니다. 그 메소드는'ClientManager'에 있습니다. 48)'PrintWriter'의 객체를 만들지 못했습니다. – csmckelvey
지금까지 해결할 수 있었던 유일한 문제는 PrintWriter 개체입니다. 나는 어떤 매개 변수를 CM.Add()와 다른 것에 넣을 지 모르겠다. 나는 단지 모른다. .. – Sean
'ClientManager' 클래스에서'public synchronized void Add (MyClient C)'를 본다. 이 메소드를'MyServer'에서 사용할 때는 반드시'MyClient' 객체를 넘겨 주어야합니다. – csmckelvey