Java Socket 통신(1) 클라이언트 프로그램에서 데이터 전송 및 수신

네트워크 응용 프로그램은 클라이언트와 서버 두 부분으로 나뉘는데 Socket 클래스는 클라이언트의 통신을 처리하는 자바 클래스이다.이 클래스를 통해 지정한 IP나 도메인 이름의 서버에 연결할 수 있고 서버와 서로 데이터를 보내고 받아들일 수 있다.
Socket 통신에 대한 약술은 서비스 측이 Socket의 출력 흐름에 글을 쓰면 클라이언트는 Socket의 입력 흐름을 통해 대응하는 내용을 읽을 수 있다.Socket과 Socket 사이는 양방향으로 연결되어 있기 때문에 클라이언트도 대응하는 Socket 출력 흐름 안에 글을 쓸 수 있고 서버에 대응하는 Socket의 입력 흐름은 대응하는 내용을 읽을 수 있다.
예1: 클라이언트의 간략한 쓰기 (一).

Socket client = null;
try{
client = new Socket(Ip,Port);
String msg=" !";
// socket ,  
client.getOutputStream().write(msg.getBytes());
byte[] datas = new byte[2048];
// 
client.getInputStream().read(datas);
System.out.println(new String(datas));
}catch(Exception e){
e.printStackTrace();
}finally {
if (client != null) {
try {
client.close();
} catch (IOException e) {
System.out.println("systemerr:" +e);
}
}
}
예2: 클라이언트의 간략한 쓰기 (二).

try{
client = new Socket();
SocketAddress socketAddress = new InetSocketAddress(Ip,Port);
client.connect(socketAddress, 3000);
String msg=" !";
// socket ,  
client.getOutputStream().write(msg.getBytes());
byte[] datas = new byte[2048];
// 
client.getInputStream().read(datas);
System.out.println(new String(datas));
}catch(Exception e){
e.printStackTrace();
}finally {
if (client != null) {
try {
client.close();
} catch (IOException e) {
System.out.println("systemerr:" +e);
}
}
}
예3: 클라이언트의 전체 쓰기

try { 
//1. socket ,  
Socket socket =new Socket(Ip,Port); 
//2. socket  
OutputStream os=socket.getOutputStream(); 
PrintWriter pw=new PrintWriter(os); 
//  
InputStream is=socket.getInputStream(); 
BufferedReader br=new BufferedReader(new InputStreamReader(is)); 
//3. , socket  
String sendInfo=" !";
pw.write(sendInfo); 
pw.flush(); 
socket.shutdownOutput(); 
//  
String replyInfo=null; 
while(!((replyInfo=br.readLine())==null)){ 
System.out.println(" :"+replyInfo); 
} 
//4.  
br.close(); 
is.close(); 
pw.close(); 
os.close(); 
socket.close(); 
} catch (UnknownHostException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
}
자바 소켓 통신(하나)의 클라이언트 프로그램의 데이터 전송과 수신에 관한 지식을 소개합니다. 더 많은 정보는 저희 사이트에 접속하여 더 많은 내용을 알아보세요!

좋은 웹페이지 즐겨찾기