Maison > Java > javaDidacticiel > Java Socket Communication (1) Programme client pour envoyer et recevoir des données

Java Socket Communication (1) Programme client pour envoyer et recevoir des données

高洛峰
Libérer: 2017-01-05 14:28:34
original
4623 Les gens l'ont consulté

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);
}
}
}
Copier après la connexion

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);
}
}
}
Copier après la connexion

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(); 
}
Copier après la connexion

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 !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal