자바 네트워크 프로 그래 밍 학습 --- SOCKET

오늘 은 SOCKTE 프로 그래 밍 을 간단하게 사용 하 는 법 을 배 웠 습 니 다.
socket 과 server socket 으로 서로 통신 하 는 방법 을 보고 싶 었 습 니 다.
얼떨결에 실 수 를 했 는데,
주로 socket 의 inputstream 과 outputstream 흐름 에 오류 가 발생 했 습 니 다.
1. writer 의 flush 방법 을 호출 해 야 합 니 다.
다음은 클 라 이언 트 socket 의 사용 방식 입 니 다.

pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
msg = "req" + count + [color=red]"
";[/color] pw.write(msg); pw.[color=red]flush[/color]();

서버 server socket 에서 클 라 이언 트 가 전송 한 데 이 터 를 받 습 니 다.

br = new BufferedReader(new InputStreamReader(s.getInputStream()));
while ((msg = br.readLine()) != null) {
Print.print(msg);
break;
}

이 코드 에 서 는 위 에 빨간색 이 표 시 된 곳 에 주의해 야 한다.
우선, 클 라 이언 트 전송 메시지 에 '' 기 호 를 추가 하지 않 으 면 서버 의 br. readLine () 이 계속 막 힐 것 입 니 다. Buffered Reader. readLine () 은 텍스트 줄 을 읽 는 것 이기 때문에 줄 바 꾸 기 ('), 리 턴 ('\r ') 또는 리 턴 후 줄 바 꾸 기 를 통 해 한 줄 을 읽 었 는 지 아 닌 지 를 판단 합 니 다.
그 다음으로 writer. flush () 방법 이 호출 되 지 않 으 면 클 라 이언 트 가 보 낸 메 시 지 는 캐 시 에 저 장 됩 니 다. 그러면 서버 의 br. readLine () 이 계속 막 혀 데 이 터 를 얻 지 못 합 니 다.
이 두 가지 문제 가 발생 한 것 은 내 가 대류 하 는 방법 과 저층 의 실현 이 명확 하지 않 고 기초 가 아직 많이 부족 하기 때문이다.

좋은 웹페이지 즐겨찾기