수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • 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

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

번호 제 목 글쓴이 날짜
2700173 자바 소스인데 어떤게 에러인지..? (1) 호빵녀 2025-07-02
2700142 하단이 붙어있는 가변 레이아웃구조 질문드립니다. 이플 2025-07-02
2700089 이미지를 사다리꼴로 비틀게 하는 액션코드가 있나요? (4) 여름 2025-07-01
2700033 배경에 그라데이션을 넣으려고 하는데요.. (4) 화이티 2025-07-01
2700005 [질문] TextField 객체의 실제 높이 알아오는 방법 ? 천사의눈물 2025-07-01
2699978 FileReferenceList를 이용하여 업로드시 자꾸 실행속도가 느리다는 팝업이... (10) 데이비드 2025-06-30
2699944 자바스크립트가 많은 사이트는... (6) 희나리 2025-06-30
2699918 브라우저마다 다른 input과 텍스트 정렬 (3) 늘봄 2025-06-30
2699887 동적텍스트를 그래픽으로?? (2) 족장 2025-06-30
2699862 scope넣기 (1) 아인 2025-06-29
2699835 exe로 만드는 방법을....알려주세요.. (5) 방방 2025-06-29
2699809 롤오버할때 백그라운드 이미지로할때 alt설명은 어떻게해야하죠?..ㅠ (4) 반혈 2025-06-29
2699757 리스트뷰에 있는 내용을 랜덤으로 추출 세실 2025-06-28
2699725 JMX 질문입니다. (1) 시나브로 2025-06-28
2699695 으으아으ㅏ으ㅏ 정말미쳐버리겟네요 진달래 2025-06-28
2699665 absolute에 대해서 궁금한게 있습니다 (1) 영빈이 2025-06-28
2699629 테마 적용이 잘 안됩니다. ㅠㅜ (2) 서희 2025-06-27
2699601 html코딩 브라우져 확인 할때.. (5) 에드워드 2025-06-27
2699575 [질문] 고수님들...가르쳐주세염....renameTo에 관하여 일본드립 2025-06-27
2699547 [급]레이어보다 object태그가 우선순위가 되는 문제 (5) DevilsTears 2025-06-27
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

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