>  기사  >  Java  >  Java 소켓 통신 (1) 데이터를 주고 받는 클라이언트 프로그램

Java 소켓 통신 (1) 데이터를 주고 받는 클라이언트 프로그램

高洛峰
高洛峰원래의
2017-01-05 14:28:344576검색

네트워크 애플리케이션은 클라이언트와 서버의 두 부분으로 나뉘며, 소켓 클래스는 클라이언트 통신을 처리하는 Java 클래스입니다. 이 클래스를 통해 지정된 IP나 도메인 이름으로 서버에 접속할 수 있고, 서버와 데이터를 주고받을 수 있습니다.

소켓 통신에 대해 간략하게 설명하면 서버는 소켓 출력 스트림에 내용을 쓰고, 클라이언트는 소켓 입력 스트림을 통해 해당 내용을 읽을 수 있습니다. Socket과 Socket 사이에는 양방향 연결이 있으므로 클라이언트는 해당 Socket 출력 스트림에 내용을 쓸 수도 있고, 그런 다음 서버의 해당 Socket 입력 스트림에서 해당 콘텐츠를 읽을 수도 있습니다.

예 1: 클라이언트의 약어(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: 클라이언트 약어(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(); 
}

여기에서는 Java 소켓 통신(1) 클라이언트 프로그램의 데이터 송수신에 대한 관련 지식을 편집자가 소개합니다. 자세한 내용은 PHP 중국어 웹 사이트에 로그인하여 자세히 알아보세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.