Les applications réseau sont divisées en deux parties : client et serveur, et la classe Socket est la classe Java chargée de gérer la communication client. Grâce à cette classe, vous pouvez vous connecter à un serveur avec une adresse IP ou un nom de domaine spécifié, et envoyer et recevoir des données vers et depuis le serveur.
Pour une brève description de la communication Socket, le serveur écrit des éléments dans le flux de sortie Socket et le client peut lire le contenu correspondant via le flux d'entrée Socket. Il existe une connexion bidirectionnelle entre Socket et Socket, de sorte que le client peut également écrire des éléments dans le flux de sortie Socket correspondant, puis le flux d'entrée Socket correspondant sur le serveur peut lire le contenu correspondant.
Exemple 1 : Abréviation de client (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); } } }
Exemple 2 : Abréviation client (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); } } }
Exemple 3 : La méthode de rédaction complète du client.
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(); }
L'éditeur vous présentera les connaissances pertinentes sur l'envoi et la réception de données par le programme client dans Java Socket Communication (1) ici Pour plus d'informations, veuillez vous connecter au site Web PHP chinois pour en savoir plus !