728x90
정리할거
borderLayout, gridLayout, 레이아웃 관련 정리하기
밑에 catch부분 설명 -필요
url따오고 길 만들고 |
|
데이터를 한줄씩 읽어와서 line에 넣어야 하니까 페이지 소스를 전부다 돌기 위해서 반복문 사용 페이지 소스를 한줄씩 읽어오는데 더이상 읽고 line에 복사할게 없으면 null이면 -1을 출력해서 반복문 벗어나기 |
|
단어를 가져오는데 소문자, 대문자 가 있으니까 toLowerCase()를 통해 다 소문자로 통일해서 저장한다. |
|
indexOf()는 찾는 글자가 더이상 없으면 -1을 리턴한다. 이걸 이용 나머지 설명은 indexOf() 글 찾으면 있음 |
|
이렇게해서 페이지안에 내가 원하는 문자가 몇개있는지 뽑아올 수 있다. |
채팅창
입력창과 보내기버튼을 아직수정 안했다 |
|
밑에 패널 부분만 레이아웃을 설정해주면된다. BorderLayout()사용 이러면 윈도우창은 완성 |
|
임의의 메소드를 하나더 만든다. (ChatClient는 접어놨다) |
|
자동으로 팝업창이 실행된다. | |
다르게 입력해봤다 서버ip값을 강제로 입력해놨다 |
|
코드를 추가하고 윗사진 처럼 ip를 지나 닉네임을 입력할 수 있게 nickName을 만든다. |
|
소켓을 만들기 위해 필드를 더 추가한다. |
|
1번사진 소켓은 내 IP주소 2번사진은 내 IP주소가 아니라 다른 IP를 넣어준거 |
|
|
데이터가 오가는 그림 설명 |
오류는 try catch로 잡았다. catch부분 설명 - |
|
서버에 닉네임을 보내준다. | |
채팅은 순서상관없이 너나 나나 다같이 보낼수 있어야 한다. 그러면 스레드르 사용해야 한다, 그리고 보내기 버튼도 활성해야한다. ActionListener, Runnable를 implement하고 스레드를 생성하자 스레드랑 이벤트는 service() 메소드에 생성했다. |
|
if문의 내용이 내가 입력칸에 quit를 치면 actionPerformed를통해 화면에 어찌어찌 출력하게 되는데 사진에 있는 부분이 그걸 읽어들이면 종료를 해버린다. 글이 나와도 스크롤이 안따라다닌다. |
|
저 코드를 넣으면 스크롤이 자동으로 내려간다. | |
원래는 x버튼 누르면 서버에 에러가 나는데 빨간 부분을 작성하면 x를 누르고 나가도 에러대신 저 문구를 출력하고 나간다. |
서버만들기
서버는 스레드가 될수 없고 io가 스레드가 되어야 한다.
여기서는 ChatServer는 서버가 되고 CHatHandler가 스레드가 되어야 한다.
ServerSocket 생성 | |
|
|
스레드 생성 필드에 보면 소켓을 잡았는데 이렇게하면 클라이언트 하나씩 소켓을 만들어 줄수 없다. 소켓은 ChatServer()안에 넣어서 개별로 만들어줘야 한다. |
|
완성본 |
핸들러
스레드 부분 만들고 | |
broadcast 부분 따로 만들기????"????? | |
채팅입력부분 | |
나간사람한테는 quit를 보내고 남은 사람한테는 oo님이 나갔습니다를 보내야 한다. |
|
일단 exit가 아니라 break를 걸어 while문을 벗어나게 만든다. | |
quit를 입력하고 나간사람에게는 quit를 보내고 그외에 사람들에게는 다른 메세지 보내기 list에 클라이언트들이 배열로 저장되어 있으니까 한명 제거하기 |
|
728x90
'JAVA' 카테고리의 다른 글
10/26 수업내용 (DB) (0) | 2020.10.26 |
---|---|
Frame - BorderLayout(), FlowLayout(), GridLayout() (0) | 2020.10.23 |
10/22 수업내용 (0) | 2020.10.22 |
그림판 (0) | 2020.10.20 |
10/19 수업 (0) | 2020.10.19 |