Javaソケット通信 (1) データを送受信するクライアントプログラム

高洛峰
リリース: 2017-01-05 14:28:34
オリジナル
4593 人が閲覧しました

ネットワーク アプリケーションはクライアントとサーバーの 2 つの部分に分かれており、Socket クラスはクライアント通信の処理を担当する Java クラスです。このクラスを通じて、指定した IP またはドメイン名を持つサーバーに接続し、サーバーとの間でデータを送受信できます。

ソケット通信について簡単に説明すると、サーバーはソケットの出力ストリームに何かを書き込み、クライアントはソケットの入力ストリームを通じて対応するコンテンツを読み取ることができます。ソケットとソケットの間には双方向接続があるため、クライアントは対応するソケット出力ストリームに内容を書き込むこともでき、サーバー上の対応するソケット入力ストリームは対応するコンテンツを読み取ることができます。

例1: 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);
}
}
}
ログイン後にコピー

例 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 中国語 Web サイトにログインしてください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート