수다닷컴

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

[질문] NIO 공부하다 머리털 다빠지겠네요.ㅜㅜ

강아지

2023.04.01

이해도 잘 안가고..ㅜㅜ
특히 selector 와 SelectionKey 가 돌아가는 원리가 참...이해가 안되네요
그래서 책의 예제를 좀더 간추려서 .. 이해하기 쉽게 만들어 봤는데요
이놈이 안돌아가네요..
단순히 서버에서 클라이언트의 접속을 받아들이는건데요
java.net.ConnectException : Connection refused : connect

생략
이렇게 나오네요
분명히 책의 예제에서 서버가 클라이언트 접속처리 하는부분만 가져온거 같은데...
아래는 소스입니다.
서버
import java.nio.*;
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.nio.channels.spi.*;
import java.nio.charset.*;
import java.util.*;class SimpleChatServer extends Thread{
private ServerSocketChannel Server;
private Selector acceptSelector;
private static final int PORT = 30000;

public SimpleChatServer(){
try{

acceptSelector = Selector.open();
Server = ServerSocketChannel.open();
Server.configureBlocking(false);
InetSocketAddress address = new InetSocketAddress(192.168.1.3,PORT);
System.out.println(서버열림: + address);

Server.register(acceptSelector,SelectionKey.OP_ACCEPT);
}catch(Exception e){ e.printStackTrace();}
}
public void run(){
while(true){
try{
acceptSelector.select();
Set readyKeys = acceptSelector.selectedKeys();
for(Iterator i = readyKeys.iterator();i.hasNext();){
SelectionKey key = (SelectionKey)i.next();
i.remove();
ServerSocketChannel acceptChannel = (ServerSocketChannel)key.channel();

SocketChannel incomingChannel = acceptChannel.accept();
System.out.println(접속처리);
}
}catch(Exception e){
e.printStackTrace();
}
}
}

public static void main(String[] args){
SimpleChatServer sev = new SimpleChatServer();
sev.start();
}}
클라이언트import java.io.*;
import java.net.*;
import java.nio.*;
import java.nio.channels.*;

class SimpleChatClient extends Thread{
private ByteBuffer buffer;
private InetSocketAddress address;
private SocketChannel socketChannel;
private static final int PORT = 30000;
private static final String host =192.168.1.3;
public SimpleChatClient(){
try{
buffer = ByteBuffer.allocateDirect(2048);
address = new InetSocketAddress(InetAddress.getByName(host),PORT);
socketChannel = SocketChannel.open();
socketChannel.connect(address);
}catch(Exception e) { e.printStackTrace();}
}
public void run(){
int chars_read;
try{
while(socketChannel.isConnected()){
socketChannel.read(buffer);
buffer.flip();
System.out.println(buffer.toString());
buffer.clear();
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
SimpleChatClient client = new SimpleChatClient();
client.start();
}
}

신청하기





COMMENT

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

  • 천사의눈물

    앗 이거 부담되서..
    오늘부터 har~d 하게 공부모드 돌입해야겠네요.^^
    ㅎㅎ 가고싶다님도 도움주시려(?--;) 하셨다니 감사합니다

  • 황소자리

    오히려 제가 부탁드려야지용.. NIO를 먼저시작하신 선배님이신데..^^ 책도착하는날과 함께 질문공세 나갈지도 모르겠네여.. 덧글피하시면. 미오할꺼에여......

  • 두루

    ㅋㅋ 처리 하셨구나. 지금 저두 해보고 있었는데.. 오늘은 널널 해서. 이것저것 해보는군요.

  • 에드가

    아..해결했습니다...서버소캣채널을 바인딩을 안시켜 줬네요..-_-; 이런.바보!
    둥수다님 잘 부탁 드리겠습니다.^_^

  • 유진공주

    음.. 저두 NIO로 함 해볼라고.. 지금 인터넷에서 NIO관련책 하나 주문했네여... 지금은 스윙좀 보면서.. UI구상하고 있꼬.. 저도 조만간 NIO로 메신져 함 만들어볼께여..^^ 아마 그때되면.. 같이 고민할듯..ㅎㅎ 힘내세여..

번호 제 목 글쓴이 날짜
2695878 form을 이용한 다른 페이지로 넘기는 방법을 알려주세요 (1) 핫파랑 2025-05-24
2695844 저기 암호화 및 복호화 프로그램.. 만들어볼려는대 (2) 한빛 2025-05-24
2695814 [질문] PDA에서 애플릿이 가능한가요? (1) 봄시내 2025-05-24
2695785 웹 설정 도와줄분 화이트캣 2025-05-23
2695730 갑자기 기억이 안나는데 accesskey 속성.. 빛나라 2025-05-23
2695702 [질문] Java 버전 차이에 의한 오류?!! (2) 검사 2025-05-23
2695672 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) 뽀그리 2025-05-22
2695647 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) 아빠몬 2025-05-22
2695586 IFRAME 캐싱 질문 봄나비 2025-05-22
2695498 [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; 터1프한렩 2025-05-21
2695468 자바랑 이클립스에서요.. 스킬 2025-05-21
2695375 Mysql 연동하는 자바 질문있습니다. 아리솔 2025-05-20
2695319 파워포인트 파일을 저장할 수 있을까요? 시윤 2025-05-19
2695289 [질문]Tween 값의 정도를 알고 싶습니다. 타마 2025-05-19
2695238 c 와 c++의 시작 (10) ChocoHoilc 2025-05-18
2695215 탑메뉴의 repeat-x .배경이 두가지에요ㅠ ㅠ 널위해 2025-05-18
2695187 자바스크립트와 자바의 import에 관해서 질문드려요 (1) 무슬 2025-05-18
2695116 테마 문의 (해당 사이트와 같은 테마 혹은 플러그인) Sweet 2025-05-17
2695084 [질문] starDrag()와 같은 함수 만들기 민구 2025-05-17
2695055 폰트 질문드립니다. 할인사이트에 많이 쓰는 굵은 숫자폰트.. (2) 일본녀 2025-05-17
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

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