모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    병신보면짖개님의
    개인페이지입니다
    가입 : 15-10-04
    방문 : 128회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_16760
    작성자 : 병신보면짖개
    추천 : 0
    조회수 : 1801
    IP : 106.244.***.179
    댓글 : 3개
    등록시간 : 2016/04/17 18:05:05
    http://todayhumor.com/?programmer_16760 모바일
    도저히 이유를 모르겠습니다 ㅠㅠ
    옵션
    • 베스트금지
    • 본인삭제금지
    • 외부펌금지
    client | server

           -----------문자열 전송 ------------>
           -------입력파일(A.txt)전송 ---------->

    입력파일을 읽어 연산
          <-----------문자열 전송 ------------
          <-------출력파일(B.txt)전송 ----------

    하는 서버를 만들고있는데 클라이언트쪽 파일 전송까지 정상적으로 되고 그뒤로는 소켓이 끊겨버리면서 서버에서 전송한 결과를 클라쪽에서 받을 수가 없네요
    진짜 이것저것 바꿔보고 해도 도저히 답이 안나와서 ㅠㅠㅠㅠ
    저번에 올렸었는데 아직 해결이 안되서 이번에 소스도 함께 올려봅니다 계속 이부분에서 막혀서 진행이 안되네요 ㅠㅠㅠㅠ 
    도와주세용 ㅠㅠㅠ



    ---------------Server--------------
    public class BioToolServer {

    public static void main(String[] args) {
    new BioToolServer().runServer();
    }

    public void runServer() {
    int SERVER_PORT = 7777; // 임시포트
    ServerSocket serverSocket = null;
    Socket socket = null;

    try {

    System.out.println("\n\n\n=======>>>>>>> 서버 시작\n");
    serverSocket = new ServerSocket(SERVER_PORT);

    while (true) {
    // 클라이언트 접속 대기 accept()
    socket = serverSocket.accept();
    System.out.println("[" + socket.getInetAddress() //
    + ":" + socket.getPort() + "]" + "접속");

    //BToolServer
    BToolServer bioServer = new BToolServer(socket);
    bioServer.start();
    }// while

    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    // SocketUtil.close(serverSocket);
    }
    }
    }
    class BToolServer extends Thread {

    private Socket socket;
    private DataOutputStream dsOut;
    private DataInputStream dsIn;

    BToolServer(Socket socket) {
    this.socket = socket;
    try {
    dsIn = new DataInputStream(socket.getInputStream());
    dsOut = new DataOutputStream(socket.getOutputStream());
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    public void run() {
    try {
    String strInput = dsIn.readUTF();
    System.out.println("strInput : " + strInput);

    if (strInput.equals("serverEchoTest")) { // Echo
    dsOut.writeUTF(strInput);
    } else if (strInput.equals("runBio")) { // BioTool
    // File Receive

    String rFileName = dsIn.readUTF();
    System.out.println("sFileName : " + rFileName);
    String rFilePath = "C:\\Users\\Administrator\\Desktop\\temp\\ServerIn\\"
    + rFileName;

    File inFile = new File(rFilePath);
    FileOutputStream fOutStream = new FileOutputStream(inFile);
    BufferedOutputStream bufferOut = new BufferedOutputStream(
    fOutStream);
    int inLen;
    int inSize = 4096;
    byte[] inData = new byte[inSize];
    System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
    while ((inLen = dsIn.read(inData)) != -1) {
    bufferOut.write(inData, 0, inLen);
    }
    bufferOut.flush();
    bufferOut.close();
    fOutStream.close();
    dsIn.close();
    System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    System.out.println("결과전송!");
    dsOut.writeUTF("결과전송테스트");

    dsOut.close();
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }



    ----------------client main-----------------------
    String ip = "127.0.0.1"; //const
    int port = 7777;
    BioToolClient echoTest = new BioToolClient(ip,port);
    if(echoTest.serverEchoTest()){
    System.out.println("정상");
    echoTest.runBioTool();
    }
    else{
    System.out.println("안옴");
    }


    ----------------client -----------------------
    public class BioToolClient {
    private String serverIp;
    private int nPort;
    private static String TEMP_DIR = "C:\\Users\\Administrator\\Desktop\\temp\\";
    BioToolClient(String serverIp, int nPort) {
    this.nPort = nPort;
    this.serverIp = serverIp;
    }
    public boolean serverEchoTest() {
    try {
    Socket socket = new Socket(serverIp, nPort);
    DataOutputStream dsOut = new DataOutputStream(socket.getOutputStream());
    DataInputStream dsIn = new DataInputStream(socket.getInputStream());
    boolean isInputData = true;
    //String InputData = "runBio";
    String InputData = "serverEchoTest";
    String returnData = "";

    dsOut.writeUTF(InputData);

    while (isInputData) {
    returnData = dsIn.readUTF();
    isInputData = false;
    }
    System.out.println("insert : " + returnData);
    if (InputData.trim().equals(returnData)) {
    dsOut.close();
    dsIn.close();
    socket.close();
    return true;
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    return false;
    }

    public void runBioTool() {

    Socket socket;
    try {
    socket = new Socket(serverIp, nPort);

    ClientSender sender = new ClientSender(socket);
    ClientReceiver receiver = new ClientReceiver(socket);
    receiver.start();
    sender.start();

    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    class ClientReceiver extends Thread {

    private Socket socket;
    private DataInputStream dsIn;

    ClientReceiver(Socket socket) {
    try {
    this.socket = socket;
    dsIn = new DataInputStream(socket.getInputStream());
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    @Override
    public void run() {
    try {

    System.out.println("\n----------Receiver------------\n");
    String strInput = "";
    while(true)
    {
    strInput = dsIn.readUTF();
    System.out.println(strInput);
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    class ClientSender extends Thread {

    private Socket socket;
    private DataOutputStream dsOut;

    ClientSender(Socket socket) {
    try {
    this.socket = socket;
    dsOut = new DataOutputStream(socket.getOutputStream());
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    @Override
    public void run() {
    try {
    System.out.println("\n----------Sender------------\n");
    String sFileName = "clientSend.txt";
    String sFilePath = "C:\\Users\\Administrator\\Desktop\\temp\\" + sFileName;

    dsOut.writeUTF("runBio"); //분석 툴 실행 구분
    dsOut.writeUTF(sFileName);
    File readFile = new File(sFilePath);
    FileInputStream fInStream = new FileInputStream(readFile);
    BufferedInputStream bufferIn = new BufferedInputStream(fInStream);
    int len = 0;
                int size = 4096;
                byte[] data = new byte[size];
                while ((len = bufferIn.read(data)) != -1) {
                dsOut.write(data, 0, len);
                }
                
                bufferIn.close();
                fInStream.close();
                dsOut.flush();
    dsOut.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }




    ///////////////////////////////////////////////
    클라이언트 콘솔
    ///////////////////////////////////////////////
    insert : serverEchoTest
    정상

    ----------Receiver------------


    ----------Sender------------

    java.net.SocketException: socket closed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.net.SocketInputStream.read(SocketInputStream.java:182)
    at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:320)
    at java.io.DataInputStream.readUTF(DataInputStream.java:572)
    at java.io.DataInputStream.readUTF(DataInputStream.java:547)
    at com.ClientReceiver.run(BioToolClient.java:97)

    ///////////////////////////////////////////////
    서버 콘솔
    ///////////////////////////////////////////////

    =======>>>>>>> 서버 시작

    [/127.0.0.1:57247]접속
    strInput : serverEchoTest
    [/127.0.0.1:57248]접속
    strInput : runBio
    sFileName : clientSend.txt
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    결과전송!
    java.net.SocketException: Socket closed
            at java.net.SocketOutputStream.socketWrite(Unknown Source)
            at java.net.SocketOutputStream.write(Unknown Source)
            at java.io.DataOutputStream.write(Unknown Source)
            at java.io.DataOutputStream.writeUTF(Unknown Source)
            at java.io.DataOutputStream.writeUTF(Unknown Source)
            at com.BToolServer.run(BioToolServer.java:104)




    아 진짜 답답해서 돌아버리겠습니다 ㅠㅠ 데이터를 주고 받고 close하는 부분때문인거 같은데 여기저기 옮겨보고 없애봐도 에러가나거나 무한루프를 도네요... 도와주세요 ㅠㅠ

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    23
    인터넷 화장품이 더 싼 이유가 뭘까요??? [3] 본인삭제금지 병신보면짖개 17/07/30 16:30 453 1
    22
    비싼거 입소문난거 다써봐도 안되는 징어에게 도움을 주세요... [10] 베오베금지본인삭제금지 병신보면짖개 17/06/06 23:12 188 2
    21
    더블웨어랑 뭘 섞어발라야 할까요 [6] 본인삭제금지 병신보면짖개 17/01/23 00:04 136 1
    20
    집에 물이새서 피해가 생겼습니다 도와주세요 본인삭제금지 병신보면짖개 16/07/05 23:07 24 1
    19
    방금 최적화글... [1] 병신보면짖개 16/05/08 17:00 69 0
    18
    펌프하다 무릎 나간 사람인데요 [3] 병신보면짖개 16/05/06 20:56 192 0
    17
    어..펌프조심하세요... [4] 병신보면짖개 16/05/05 15:35 188 4
    16
    와... 진짜 역대급 관객크리... [3] 병신보면짖개 16/05/02 20:12 166 3
    15
    여러분 게임 추천 좀 해주세요! [6] 병신보면짖개 16/04/29 23:33 48 0
    14
    견적내다가... i7 6700으로 올려봤어요 ;; [6] 본인삭제금지 병신보면짖개 16/04/22 23:31 105 0
    13
    컴퓨터를 사보려 합니다 ! [6] 본인삭제금지 병신보면짖개 16/04/22 17:20 88 0
    도저히 이유를 모르겠습니다 ㅠㅠ [3] 베스트금지본인삭제금지외부펌금지 병신보면짖개 16/04/17 18:05 55 0
    11
    우왕 미치겠네영 ㅎㅎ 소켓통신 관련해서 도와주실분! [4] 본인삭제금지 병신보면짖개 16/04/11 21:50 33 0
    10
    심심해서 화장대, 네일 정리 [3] 병신보면짖개 16/03/20 01:57 68 3
    9
    나스블러셔 나스블러셔 하잖아요? [11] 본인삭제금지 병신보면짖개 16/03/20 00:16 263 1
    8
    더블웨어를 사왔습니다.. 파운데이션 고민 ㅠㅠ [7] 본인삭제금지 병신보면짖개 16/03/19 21:15 173 0
    7
    리눅스 실행파일 문제.. 조언좀 부탁드립니다. [7] 본인삭제금지 병신보면짖개 16/03/17 14:20 40 0
    6
    영화 네편을 보고있습니다 [3] 병신보면짖개 16/03/09 23:15 53 0
    5
    미샤 베이스 라인 후기를 찾고 있어요 [5] 본인삭제금지 병신보면짖개 16/02/09 22:23 85 0
    4
    어...음....이런말하면좀그렇지만 [6] 병신보면짖개 16/01/03 00:05 396 10
    3
    조금 무리해 보려고 하는데... 도와주시겠어요? [12] 베스트금지 병신보면짖개 15/11/14 13:59 98 2
    2
    살려주세요 ㅠㅠㅠㅠ [4] 병신보면짖개 15/10/21 21:32 41 3
    1
    안녕하세요 신입입니다 [6] 병신보면짖개 15/10/10 16:31 126 3
    [1]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈