私が学んだ主な手順
最初のステップ: 特定のポート (4800 など) を使用して新しいソケット オブジェクトを作成します
2 番目のステップ: システム入力デバイスを使用して BufferedReader オブジェクトを構築します。これは、システム入力デバイスによって文字入力を受け取るために使用されます。システムキーボード
3 番目のステップ: ソケット オブジェクトを使用して出力ストリームを取得し、PrintWriter を構築します
ステップ 4: ソケット オブジェクトを使用して入力ストリームを取得し、対応する BufferedReader オブジェクトを構築します。 このオブジェクトは、から送信された情報を受信するために使用されます。私の理解では、ソケットを閉じます。最初に開くと後で閉じられ、最後にソケットが閉じられます。
以下はクライアント コードの実装です:
package com.fan.socket;
import java.io.*;
import java.net.Socket;
public class SocketClient {
try{
System.out.println("client start...");
//の4800ポートへこのマシンは顧客リクエストを発行します
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//システムの標準入力デバイスから BufferedReader オブジェクトを構築します
PrintWriter write=new PrintWriter(socket.getOutputStream());
//Socket オブジェクトから構築 出力ストリームを取得し、PrintWriter オブジェクトを構築します
BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//Socket オブジェクトから入力ストリームを取得し、対応する BufferedReader を構築しますobject
String readline;
readline=br .readLine(); //システムの標準入力から文字列を読み込みます
while(!readline.equals("end")){
//標準入力から読み込んだ文字列が"end"、ループを停止します
write.println(readline);
//システムの標準入力から読み取った文字列をServer2に出力します
write.flush();
//サーバーが文字列を受信できるように出力ストリームを更新しますすぐに
System.out.println("Client:"+readline);
//読み取った文字列をシステム標準出力に出力します
System.out.println("Server:"+in.readLine());
//サーバーから文字列を読み取り、標準出力に出力します
readline=br.readLine() //システムの標準入力から文字列を読み取ります
} //ループを継続します
write.close();出力ストリーム
in.close(); // ソケット入力ストリームを閉じる
socket.close(); // ソケットを閉じる
}catch(Exception e) {
System.out.println("can not listen:" +e);/ /エラー、エラーメッセージを出力します
}
}
}
サーバーコード実装:
package com.fan.socket;
import java.io.*;
import java.net.ServerSocket;import java.net.Socket;
public class SocketService {
public static void main(String[] args) throws IOException{SocketServiceソケットService = new SocketService();
socketService.oneServer( );
}
public void oneServer(){
try{
ServerSocket server=null;
try{
server=new ServerSocket(4800);
System.out.println("サーバーの起動は正常です...") ;
// ポート 4800 でクライアントリクエストをリッスンするための ServerSocket を作成します
}catch(Exception e) {
System.out.println("can not listen to:"+e);
//エラー、エラーメッセージを出力します
}
Socket ソケット=null ;
try{
socket=server.accept();
//accept() を使用して顧客のリクエストをブロックし、待機します。顧客の
//リクエストが到着すると、Socket オブジェクトが生成され、続行されます。実行するには
}catch(Exception e) {
System.out.println("Error."+e);
//エラー、エラー メッセージを出力します
}
String line;
BufferedReader in=new BufferedReader(new InputStreamReader(socket .getInputStream()));
//Socket オブジェクトは入力ストリームを取得し、対応する BufferedReader オブジェクトを構築します
PrintWriter Writer=new PrintWriter(socket.getOutputStream());
//Socket オブジェクトから出力ストリームを取得し、 PrintWriter オブジェクトを構築します
BufferedReader br=new BufferedReader(new InputStreamReader( System.in));
//システム標準入力デバイスから BufferedReader オブジェクトを構築します
System.out.println("Client:"+in.readLine() );
//クライアントから読み取った内容を標準出力に出力します String
line=br.readLine();
//標準入力から文字列を読み込みます
while(!line.equals("end")){
//文字列が「end」の場合、ループを停止します
writer.println(line);
//文字列をクライアントに出力します
writer.flush();
//クライアントが受信できるように出力ストリームを更新しますstring instant
System.out.println("Server :"+line);
//読み取った文字列をシステム標準出力に出力します
System.out.println("Client:"+in.readLine());
/ /クライアントから文字列を読み取り、標準出力に出力します
line=br.readLine();
//システム標準入力から文字列を読み取ります
} //ループを継続します
writer.close(); //ソケットの出力ストリームを閉じる
in.close (); //ソケットの入力ストリームを閉じる
socket.close(); //サーバーソケットを閉じる
}catch(Exception e); {//エラー、エラー メッセージを出力します
System.out .println("Error."+e);
}
}
}

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック



