수다닷컴

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

자바와 c간의 통신에 대해 질문 드립니다!~ (소스 모두 첨부)

뿡뿡몬

2025.04.12

다음 통신 프로그램을 이용해서 자바와 C간에 채팅도 원할히 이루어지고(약간 불안전한 면은 있지만...) 이제 자바와 C간에 파일을 전송해야 하는데... 통신분석기나 C파일을 통해서 보니까 요놈이 파일인지 메세지인지를 구분 못해서 그냥 파일 이름명이랑 그 뒤로 파일안에 내용들을 채팅창으로 출력이 쫘악 되버리더군요...

이 문제를 해결하기 위해서 채팅포트를 7777, 파일전송은 포트를 7778번으로 각각 설정해서 따로따로 붙게끔 설정하니까 자바와 C끼리도 통신할때 파일전송을 누르면 소켓에 붙는데까지는 성공했지만 파일이름을 찾을수 없다는 에러가 뜨거나 그냥 프로그램이 꺼져버립니다....

참고로 자바에서 C로 파일을 보내는 부분에 대한 소스만 추려서 쓴다면

try{
/* 소켓으로부터 OutputStream 얻어서 파일명을 먼저 보냄 */
/* 서버측에서 파일 객체 생성시 이용할 것임 */
// Socket s=new Socket(ip, portn+1);
ip=iptext.getText();
Socket s=new Socket(ip, portn+1);
System.out.println(ip값은 + ip +port값은+(portn+1));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
System.out.println(파일명 : +file);

bw.write(file+\n);
bw.flush();
System.out.println(파일이름 전송);
/* 선택한 파일로 부터 스트림을 읽어들여서 얻어놓은 OutputStream에 연결 */
DataInputStream dis=new DataInputStream(new FileInputStream(new File(jlb.getText())));
DataOutputStream dos=new DataOutputStream(s.getOutputStream());
System.out.println(파일 내용 전송위한 빨대);

/* 바이트단위로 읽어서 스트림으로 쓰기 */
int b=0;
System.out.println(파일 전송 직전);
System.out.println(dis.read());
while( (b=dis.read()) != -1 ){
dos.write(b);
dos.flush();
}
System.out.println(다 보냈음);
/* 자원정리 */
dis.close(); dos.close(); s.close();
dis=null; dos=null; s=null;
// System.exit(1);
}
catch(Exception e){
System.out.println(e);
}
}

요렇게 했습니다. 이걸 일단 버퍼로 해서 파일 전송 속도를 좀 높이고 싶은데 어떤식으로 해야할까요? 참고로 인터넷에 찾아보니까 write대신에 writeByte로 하면 자바와 C간에 통신을 할수 없다고 해서 write로 바꾼거거든요. 좀더 조언해주셨으면 감사하겠습니다. 그리고 파일명과 파일을 자바와 C간에 통신할때 구분짓는 방법도 없을련지...

신청하기





COMMENT

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

번호 제 목 글쓴이 날짜
2704135 레이어있는 문서가 뒤로가기버튼 누르면 레이어가 안생깁니다. (4) 개구리 2025-08-07
2704113 왕초보 질문합니다. (3) 민들레 2025-08-07
2704084 스타일시트를 찾을 수 없다고 나오면서 테마 설치가 안되네요 ;; 다힘 2025-08-07
2704026 혼자서 코딩하구있어요 select박스질문입니닷! (4) 콩알눈 2025-08-06
2704000 button value="" 값 css로 수정관련 (2) 꼬붕 2025-08-06
2703971 접근성에 맞는dtd선언하기 (2) 하루 2025-08-06
2703917 div코딩 어느 해상도에서도 중앙정렬문의!!ㅠㅠ 해긴 2025-08-05
2703887 미치겠습니다. 테마 등록, 강남맨 2025-08-05
2703862 아바다 테마 사용도중 질문 드려요~! 모은 2025-08-05
2703831 자바에서 애프릿이랑 어플리케이션 같이쓸때 창 닫는법 (1) 소리 2025-08-04
2703806 (MFC) 현재 선택된 콤보박스 값을 EDIT박스에 어떻게 넣을까요;; 빵돌 2025-08-04
2703752 K-WAH4.4 웹접근성 title페이지 제목 없음 이거 아시는분 계신가요? 갤2 2025-08-04
2703692 초보가 헤메고 있습니다. ㅠㅠ (3) 이루리 2025-08-03
2703607 MFC 작성중에 인터넷(Web)관련하여 연동이 되게끔 만들려고 하고 있습니다 Addictive 2025-08-02
2703579 톰캣-아파치 서버에 관한 질문입니다. (2) 바나나맛사탕 2025-08-02
2703520 직사각형그리기 질문이요~! 펴라 2025-08-02
2703461 웹호스팅을 변경하려고 합니다. 찬놀 2025-08-01
2703432 dl이 dt크기만큼 안늘어납니다. (5) 불꾼 2025-08-01
2703372 조직도이미지의 대체텍스트는... (9) 한샘가온 2025-07-31
2703348 쿽스모드가 무엇인지 궁금합니다. (4) 나려 2025-07-31
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

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