まず、最も単純なソケット クライアントとサーバーの例を見てみましょう:
クライアント
public class MyClient { public static void main(String[] args) { ObjectOutputStream oos = null; ByteArrayOutputStream bos = null; Socket client = null; try { People p = new People("2","yangyu","4","5","6"); oos = new ObjectOutputStream(bos = new ByteArrayOutputStream()); //初始化object输出流 oos.writeObject(p); //将People对象写入输出流 byte[] bytes = bos.toByteArray(); //获取People对象的byte数组(也就是序列化People) client = new Socket("127.0.0.1",20007); //连接127.0.0.1的20007端口 client.setSoTimeout(10000); //设置超时时间 client.getOutputStream().write(bytes); //向server发送byte[]数组 byte[] bytes1 = IOUtils.readFully(client.getInputStream(),18,false); //获取server返回数据 System.out.println(new String(bytes1)); System.out.println(bytes1.length); } catch (Exception e) { e.printStackTrace(); }finally { try { oos.close(); bos.close(); System.out.println(client.isClosed()); client.close(); } catch (IOException e) { e.printStackTrace(); } } } }
サーバー
public class MyServer { public static void main(String[] args) { ServerSocket server = null; Socket client = null; ObjectInputStream ois = null; ByteArrayInputStream bis = null; try { server = new ServerSocket(20007); //启动Socket server,监听20007端口 client = server.accept(); //阻塞并等待接收客户端发送数据并生成client byte[] bytes = IOUtils.readFully(client.getInputStream(),-1,false);//获取客户端发送过来的数据 bis = new ByteArrayInputStream(bytes); ois = new ObjectInputStream(bis); People people = (People) ois.readObject();//反序列化 System.out.println("people name:"+people.getName()); String res = "消息已经收到"; client.getOutputStream().write(res.getBytes());//向客户端发送数据 } catch (Exception e) { e.printStackTrace(); }finally { try { bis.close(); ois.close(); client.close(); server.close(); } catch (IOException e) { e.printStackTrace(); } } } }
上記はクライアントとサーバーであり、最も単純な例ですが、ソケット プログラミングを具体化しています。
サーバーが常にポートをリッスンする必要がある場合は、ループするだけで済みます (server.accept() はリクエストの待機をブロックします)。同時実行性の高い応答については、サーバーにスレッドへのデータ ビジネスを処理させます。プール。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事
Inzoi:学校と大学への応募方法
3週間前ByDDD
Roblox:Dead Rails - ニコラテスラを召喚して倒す方法
4週間前By尊渡假赌尊渡假赌尊渡假赌

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック
Gmailメールのログイン入り口はどこですか?
7818
15


Java チュートリアル
1646
14


CakePHP チュートリアル
1402
52


Laravel チュートリアル
1300
25


PHP チュートリアル
1238
29

