日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Socket及ServerSocket创建简单的服务器

發布時間:2024/1/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Socket及ServerSocket创建简单的服务器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用Socket及ServerSocket創建簡單的服務器

@(JAVA)[java]

參考自core java

package com.lujinhong.corejava;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner;public class EchoServer {public static void main(String[] args) {try {ServerSocket serverSocket = new ServerSocket(8019);Socket socket = serverSocket.accept();InputStream is = socket.getInputStream();OutputStream os = socket.getOutputStream();PrintWriter pw = new PrintWriter(os);Scanner sc = new Scanner(is);Boolean flag = false;String line = null;String exitString = "bye";while(!flag && sc.hasNextLine()){pw.println("Hello, type " + exitString + " to exit!");line = sc.nextLine();if(line.trim().equals(exitString)){flag = true;}else{pw.println("Hello, "+line);}}pw.close();sc.close();serverSocket.close();} catch (IOException e) {e.printStackTrace();}} }

使用線程實現多個客戶端同時訪問:

package com.lujinhong.corejava;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner;public class MultiEchoServer {public static void main(String[] args) {try {ServerSocket serverSocket = new ServerSocket(8189);while (true) {Socket socket = serverSocket.accept();Runnable r = new ThreadedEchoHandler(socket);Thread thread = new Thread(r);thread.start();}} catch (IOException e) {e.printStackTrace();}}}class ThreadedEchoHandler implements Runnable {private Socket s = null;public ThreadedEchoHandler(Socket socket) {s = socket;}@Overridepublic void run() {try {InputStream is = s.getInputStream();OutputStream os = s.getOutputStream();PrintWriter pw = new PrintWriter(os);Scanner sc = new Scanner(is);Boolean flag = false;String line = null;String exitString = "bye";while (!flag && sc.hasNextLine()) {pw.println("Hello, type " + exitString + " to exit!");line = sc.nextLine();if (line.trim().equals(exitString)) {flag = true;} else {pw.println("Hello, " + line);}}sc.close();pw.close();} catch (IOException e) {e.printStackTrace();}} }

In this program, we spawn a separate thread for each connection. This approach is not satisfactory for highperformance servers. You can achieve greater server throughput by using features of the java.nio package. See www.ibm.com/developerworks/java/library/j-javaio for more information.

總結

以上是生活随笔為你收集整理的使用Socket及ServerSocket创建简单的服务器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。