자바 네트워크 프로 그래 밍 학습 --- SOCKET
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 () 이 계속 막 혀 데 이 터 를 얻 지 못 합 니 다.
이 두 가지 문제 가 발생 한 것 은 내 가 대류 하 는 방법 과 저층 의 실현 이 명확 하지 않 고 기초 가 아직 많이 부족 하기 때문이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.