네트워크 통신 - Client
2023. 7. 21. 12:22ㆍJAVA
클라이언트는 서버의 IP주소, port번호를 알아야 접속할 수 있음.
클라이언트 작업
1) 서버와 연결하는 Socket생성(ip주소,port번호)
2) 서버에 데이터를 보내기위한 무지개로드 -OutputStream
OutputStream을 만들어주는 해임달(Socket)객체에게 무지개로드(Stream)을 열어달라고 요청
os는 바이트단위로 데이터를 보내기에 불편함
바이트스트림을 문자스트림으로 변환하고.. 더 나아가 보조문자스트림으로..변환
OutputStream -> PrintWriter
3) 스트림을 통해 메세지를 내보내기- 전송
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class ClientTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 클라이언트는 서버의 IP주소, port번호를 알아야 접속할 수 있음.
String serverIP="172.30.1.83";
// 클라이언트 작업
//1) 서버와 연결하는 Socket생성(ip주소,port번호)
try {
Socket socket=new Socket(serverIP,10001);
System.out.println("서버와 연결이 되었습니다.");
//2) 서버에 데이터를 보내기위한 무지개로드 -OutputStream
//OutputStream을 만들어주는 해임달(Socket)객체에게 무지개로드(Stream)을 열어달라고요청
OutputStream os= socket.getOutputStream();
//os는 바이트단위로 데이터를 보내기에 불편함
//바이트스트림을 문자스트림으로 변환하고.. 더 나아가 보조문자스트림으로..변환
PrintWriter writer=new PrintWriter(os);
System.out.println("스트림 연결작업 성공!!.. 전송 가능 상태");
//보낼 메세지를 키보드로 입력받기
Scanner scan=new Scanner(System.in);
//먼저 데이터 하나만 보내기
// System.out.print("보낼 메세지 입력 : ");
// String msg= scan.nextLine();
//만약 여러번 메세지를 보내려면
while(true) {
System.out.print("보낼 메세지 입력 : ");
String msg= scan.nextLine();
if(msg.equals("exit")) break;
//3) 스트림을 통해 메세지를 내보내기- 전송
writer.println(msg);
writer.flush();
}
writer.close();
System.out.println("메세지 전송이 완료 되었습니다.");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
'JAVA' 카테고리의 다른 글
| GUI 깔끔하게 만들어보기 (0) | 2023.07.25 |
|---|---|
| GUI(그래픽 유저 인터페이스) (0) | 2023.07.25 |
| 네트워크 통신 - Server (0) | 2023.07.21 |
| FileOutput(파일 출력) (0) | 2023.07.20 |
| FileInput(파일 입력) (0) | 2023.07.20 |