수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

주석 설명및 실행 목적에 대해 알켜주세요

엘보어

2023.04.01

제가아는 내용만 했는데요 나머지 좀 부탁드립니다.
import java.net.*; //네트워크 통신
import java.io.*; //입출력

public class ChatServer extends Thread {
protected final static int DEFAULTPORT=5000;
protected int portNum;
protected java.util.Vector clientVector; // clientVector를 전역변수로 사용
protected ServerSocket server;

public ChatServer() {
this(DEFAULTPORT); // 바로 밑에 있는 메소드(생성자 : ChatServer(int port))를 호출한 , 매개변수의 값은 5000임
}

public ChatServer(int port) {
portNum = port;
clientVector = new java.util.Vector(); // 배열을 선언
try {
server = new ServerSocket(port); // 서버 소켓 생성
} catch(IOException ex) {
System.out.println(ChatServer 클래스를 실행할 수 없습니다.);
ex.printStackTrace();
System.exit(1);
}
}

public void run() {
try {
System.out.println(서버 시작);
while(true) {
Socket client = server.accept(); // 클라이언트의 연결을 기다린다.
ChatProcessor cp = new ChatProcessor(client, this);
cp.start(); // ChatProcessor 클래스내의 run() 실행,, Thread 생성/실행
synchronized(clientVector) {
clientVector.addElement(cp); // 벡터 배열 clientVector에 Thread 첨가, 클래스 cp 첨가
}
}
} catch(IOException ex) {
System.out.println(클라이언트와 연결되지 않는 경우 에러가 발생!!!);
System.exit(1);
}
}

public static void main(String[] args) {
int port = -1;

if ( args.length == 0 ) { // 실행할때 매개 변수가 없을 경우
new ChatServer().start(); // 포트 5000을 사용하여 서버를 실행. 즉, ChatServer 클래스내의 run() 실행
} else if ( args.length == 1 ) {
try {
port = Integer.parseInt(args[0]); // 문자열을 정수형 숫자로 변환(포트번호)
new ChatServer(port).start(); // 서버를 실행. 즉, ChatServer 클래스내의 run() 실행
} catch(NumberFormatException ex) {
System.out.println(포트 번호가 잘못 됐습니다.);
}
}
}
}

class ChatProcessor extends Thread {
protected ChatServer server;
protected Socket socket;
protected BufferedReader is;
protected PrintWriter os;

public ChatProcessor(Socket socket, ChatServer server) {
this.server = server;
this.socket = socket;
&nbnbsp;
try {
is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
os = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
} catch(IOException ex) {
System.out.println(입출력 스트림을 열 때 에러가 발생하였습니다.);
}
}

public void run() {
try {
String message;

while(true) {
message = is.readLine(); // 사용자가 입력한 메시지를 읽어서
if (message != null)
sendToAll(message); // 다른 모든 사용자들에게 전달
else return;
}
} catch(IOException ex) {
// 예외 처리를 하지 않는다. 즉 생략.......
} finally {
try {
server.clientVector.removeElement(this); // 사용자가 채팅방을 나가면 이 부분이 수행됨..
is.close();
os.close();
socket.close();
} catch(IOException ex) {
System.out.println(소켓을 닫는 동안 에러가 발생하였습니다.);
}
}
}

public void sendToOne(String s) {
os.println(s);
}

public void sendToAll(String s) {
int clientNumber = server.clientVector.size(); // 사용중인 사용자의 수를 계산
for (int i=0;iclientNumber;i++) {
ChatProcessor cp = (ChatProcessor)server.clientVector.elementAt(i);
cp.sendToOne(s);
}
}
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2694724 코딩시 폰트 문제; ㅠ 후력 2025-05-13
2694696 텍스트박스 입력에 관한 문제입니다. 딥공감 2025-05-13
2694668 [질문] 페이퍼비전 PointLight 관련 질문 드려요.. 두바다찬솔 2025-05-13
2694611 Flash Lite 2.1에서 BitmapData와 Matrix 지원안하나요? (3) 이플 2025-05-12
2694582 IE & 파이어폭스 (2) 흙이랑 2025-05-12
2694553 무비클립안의 duplicate 발동이 안돼네요; 딥보라 2025-05-12
2694523 자바 애플릿 질문좀 ^^ (6) 동이 2025-05-12
2694494 [질문] JAVA 또는 C++ 로 프로그램 개발시.. 레지스터리 등록 관련 의문점? (3) 우람늘 2025-05-11
2694469 익스6에서 css버그 나오는것 해결방법좀요 !!!! (6) 원술 2025-05-11
2694442 로컬에선 잘 나오는데 운영에 반영하면 이상하게 나와요. (8) 목화 2025-05-11
2694412 [질문] 이미지 로딩후 사이즈 조절할때 (1) 아담 2025-05-11
2694391 설치형 블로그 쓰시는 분들 어떤거 쓰세요?? (7) AngelsTears 2025-05-10
2694362 Microsoft SQL Server에서 서버만드는법 어둠 2025-05-10
2694333 for문으로 돌린 이름의 제어 (4) 레이 2025-05-10
2694308 이미지 css 도와주세요 ㅠㅠ (2) 애기 2025-05-10
2694223 [급질문]스크롤스파이의 offset값 진나 2025-05-09
2694195 li에 이미지 넣고 세로로 메뉴 구성하는 경우 (1) 예님 2025-05-09
2694167 canvas 질문요. (4) 찬늘봄 2025-05-08
2694136 왜 이렇게 나오는지 이해가 잘 가지 않네요. 부탁드리겠습니다... (2) 세련 2025-05-08
2694111 div , css 공부하고있는데요 잘모르겠어요.. 도와주세요 ㅠ_ㅠ (10) 모람 2025-05-08
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com