導航:首頁 > 編程語言 > javasocket多個對象

javasocket多個對象

發布時間:2025-07-26 09:32:46

A. 求java中用socket通信的多線程服務端,要求客戶端可以長時間連接及發送信息並且無需每次都要創建新對象

創建一個新線程時將這個線程對象的引用賦給一個變數:

MyThread thread1 = new MyThread();
MyThread thread2 = new MyThread();
thread1.start();
thread2.start();

在你的線程類中應該提供一個方法,用於關閉這個線程所創建的socket連接。例如你的MyThread類中應該提供一個關閉socket的方法:
public void closeSocket()
{
//這里關閉當前對象的socket
}

這樣,如果你想關閉thread1中的連接(該連接使用8888埠),則只要調用這個方法:

thread1.closeSocket();

B. java中的socket是什麼意思

所謂socket通常也稱作"套接字",用於描述IP地址和埠,是一個通信鏈的句柄。應用程序通常通過"套接字"向網路發出請求或者應答網路請求。
以J2SDK-1.3為例,Socket和ServerSocket類庫位於java.net包中。ServerSocket用於伺服器端,Socket是建立網路連接時使用的。在連接成功時,應用程序兩端都會產生一個Socket實例,操作這個實例,完成所需的會話。對於一個網路連接來說,套接字是平等的,並沒有差別,不因為在伺服器端或在客戶端而產生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。
重要的Socket API:
java.net.Socket繼承於java.lang.Object,有八個構造器,其方法並不多,下面介紹使用最頻繁的三個方法,其它方法大家可以見JDK-1.3文檔。
. Accept方法用於產生"阻塞",直到接受到一個連接,並且返回一個客戶端的Socket對象實例。"阻塞"是一個術語,它使程序運行暫時"停留"在這個地方,直到一個會話產生,然後程序繼續;通常"阻塞"是由循環產生的。
. getInputStream方法獲得網路連接輸入,同時返回一個InputStream對象實例。
. getOutputStream方法連接的另一端將得到輸入,同時返回一個OutputStream對象實例。
注意:其中getInputStream和getOutputStream方法均會產生一個IOException,它必須被捕獲,因為它們返回的流對象,通常都會被另一個流對象使用。
2ServerSocket類例子編輯

package com.lanber.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
/**
* 注意:Socket的發送與接收是需要同步進行的,即客戶端發送一條信息,伺服器必需先接收這條信息,
* 而後才可以向客戶端發送信息,否則將會有運行時出錯。
* @param args
*/
public static void main(String[] args) {
ServerSocket ss = null;
try {
ss = new ServerSocket(8888);
//伺服器接收到客戶端的數據後,創建與此客戶端對話的Socket
Socket socket = ss.accept();
//用於向客戶端發送數據的輸出流
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
//用於接收客戶端發來的數據的輸入流
DataInputStream dis = new DataInputStream(socket.getInputStream());
System.out.println("伺服器接收到客戶端的連接請求:" + dis.readUTF());
//伺服器向客戶端發送連接成功確認信息
dos.writeUTF("接受連接請求,連接成功!");
//不需要繼續使用此連接時,關閉連接
socket.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

3客戶端的例子編輯
package com.lanber.socket;
importjava.io.DataInputStream;
import java.io.DataOutputStream;
importjava.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class ClientDemo {
/**
* @param args
*/
public static void main(String[] args) {
Socket socket = null;
try {
socket = new Socket("localhost",8888);
//獲取輸出流,用於客戶端向伺服器端發送數據
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
//獲取輸入流,用於接收伺服器端發送來的數據
DataInputStream dis = new DataInputStream(socket.getInputStream());
//客戶端向伺服器端發送數據
dos.writeUTF("我是客戶端,請求連接!");
//列印出從伺服器端接收到的數據
System.out.println(dis.readUTF());
//不需要繼續使用此連接時,記得關閉哦
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

C. 淺談Java中如何利用socket進行網路編程(一)

Socket是網路上運行的兩個程序間雙向通訊的一端,它既可以接受請求,也可以發送請求,利用它可以較為方便的編寫網路上的數據的傳遞。在java中,有專門的socket類來處理用戶的請求和響應。利用SOCKET類的方法,就可以實現兩台計算機之間的通訊。這里就介紹一下在JAVA中如何利用socket進行網路編程。 在Java中Socket可以理解為客戶端或者伺服器端的一個特殊的對象,這個對象有兩個關鍵的方法,一個是getInputStream方法,另一個是getOutputStream方法。getInputStream方法可以得到一個輸入流,客戶端的Socket對象上的getInputStream方法得到的輸入流其實就是從伺服器端發回的數據流。GetOutputStream方法得到一個輸出流,客戶端Socket對象上的getOutputStream方法返回的輸出流就是將要發送到伺服器端的數據流,(其實是一個緩沖區,暫時存儲將要發送過去的數據)。 程序可以對這些數據流根據需要進行進一步的封裝。本文的例子就對這些數據流進行了一定的封裝(關於封裝可以參考Java中流的實現部分)。 一、建立伺服器類 Java中有一個專門用來建立Socket伺服器的類,名叫ServerSocket,可以用伺服器需要使用的埠號作為參數來創建伺服器對象。ServerSocket server = new ServerSocket(9998) 這條語句創建了一個伺服器對象,這個伺服器使用9998號埠。當一個客戶端程序建立一個Socket連接,所連接的埠號為9998時,伺服器對象server便響應這個連接,並且server.accept()方法會創建一個Socket對象。伺服器端便可以利用這個Socket對象與客戶進行通訊。Socket incoming = server.accept() 進而得到輸入流和輸出流,並進行封裝BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream())); PrintWriter out = new PrintWriter(incoming.getOutputStream(),true); 隨後,就可以使用in.readLine()方法得到客戶端的輸入,也可以使用out.println()方法向客戶端發送數據。從而可以根據程序的需要對客戶端的不同請求進行回應。

D. java中的socket編程是作什麼的

Socket,又稱為套接字,是計算機網路通信的基本技術之一。如今,大多數基於網路的軟體,如瀏覽器、即時通訊工具甚至是P2P下載,都是基於Socket實現的。本文將介紹基於TCP/IP的Socket編程,並展示如何編寫客戶端和伺服器程序。

在接下來的示例中,我們將使用基於TCP/IP協議的Socket編程,因為這個協議在實際應用中比UDP/IP更為廣泛。所有與Socket相關的類都位於java.net包下,因此在進行Socket編程時需要引入這個包。

接下來是寫入數據的過程。客戶端的Socket對象可以得到一個OutputStream對象,然後可以通過這個對象寫入數據,類似於文件輸入輸出的處理代碼

打開伺服器端的Socket也很簡單。通過Socket對象,可以獲取一個InputStream對象,然後像處理文件輸入輸出一樣讀取數據。這里我們將讀取的數據列印出來。

使用Socket實現一個回聲伺服器的功能,就是伺服器會將客戶端發送過來的數據傳回給客戶端。具體實現時,伺服器端會監聽特定的埠,當有客戶端連接時,伺服器會接收客戶端發送的數據,並將這些數據原樣返回給客戶端。

客戶端則需要知道伺服器的IP地址和埠號,然後通過Socket對象建立與伺服器的連接。客戶端發送數據後,會等待伺服器的響應,伺服器接收到數據後,會將數據返回給客戶端。客戶端接收到返回的數據後,就可以處理這些數據了。

Socket編程是構建網路應用的重要基礎,通過上述示例,我們可以看到Socket的使用並不復雜。只要掌握了基本的Socket編程方法,就可以開發出各種基於網路的應用程序。

E. 什麼是java socket

java技巧經驗
http://www.mywelt.net/?q=jts

61 條面向對象設計的經驗原則
ANT 基本概念、安裝與配置
AWT 和 SWING 的強大競爭者 - SWT 簡介
Axis + Tomcat 模擬銀行存取款服務
用 Java 編寫簡單 UDP 網路通信程序
用 JBuilder9 開發 Struts 的實例
用 JFace 和 SWT 構建一個簡單的應用程序
用 Jsp 動態輸出 excel 文檔和亂碼問題的解決
用 JSP/Servlet 構建三層式管理信息系統
用 SyncML 進行異構資料庫復制
用緩沖技術提高 JSP 應用的性能和穩定性
用連接池提高 Servlet 訪問資料庫的效率
程序開發中 Debug 和 Release 之本質區別
簡單教您如何使用 Factory Method 模式
簡易使用 Apache Web 讓你的 JSP "動"起來
Enhydra 入門 - 一個有用的中間件 - Enhydra
通過 Java Swing 看透 MVC 設計模式
通過 JDBC 連接 Oracle 資料庫的十大技巧
配置 Web 應用環境實現 JSP 留言簿開發
講解如何在 C/C++ 中調用 Java 的方法
講述在 Java 中 Decorate 的三種實現方法
詳細解析 JavaBeans 與 Ejb 的區別
詳細講解怎樣在 Java 中運行其它應用程序
詳細講述 JSP、PHP 與 Java 融合的開發環境
詳細為您解析 JSP 的環境引擎 - Websphere
詳細介紹用 JBuilder9 開發的 Struts 實例
詳解 EJB 3.0 是如何簡化應用程序的開發
詳解如何利用 iText 在 JSP 中生成 PDF 報表
詳解怎樣使用 Axis 開發 Web Service 的實例
Jar 文件包間接及 Jar 命令開發實例詳解
Java 的秘密 - 將應用程序的設定存在哪裡
Java 程序的反編譯 - 再次掀起編譯熱潮
Java 編程中更新 XML 文檔的常用方法集
Java 語言入門級的十二大特色詳細介紹
Java 入門基本語法
Java 入門所需的關鍵特性與 30 個基本概念
Java 關於中文亂碼問題的解決方案與經驗
Java 列表對象的性能分析和測試應用解析
Java 初學者常用開發工具介紹圖解
Java 基礎之"介面"與"包"
Java 對象轉為 String 的幾種常用方法剖析
Java 開發中的線程安全選擇與 Swing
Java 開發為什麼需要 UML?
Java 性能優化技巧集錦
Java 伺服器端編程安全的必讀本
Java 中 Static、this、super、final 用法
Java 中的強大武器 - 對象的序列化
JavaBeans 程序開發從入門到精通教程
Javamail 操作指南 - 實例代碼解析
Jboss 的 JDBC 數據源配置步驟詳解大全
JNI 使用技巧點滴
JSP 與 ASP 的比較
JudoScript - 讓 Java 離你更近一些
Spring WebFlow - 重用與抽象框架解析 (1)
Spring WebFlow - 重用與抽象框架解析 (2)
StarSuite 6.0 和 SDK 安裝以及配置指南 (1)
StarSuite 6.0 和 SDK 安裝以及配置指南 (2)
String.getBytes() 方法中的中文編碼問題
Swing 第三方工具的設計
Tomcat5.0 + MySql 配置 JDBC,DBCP,SSL
Web Services 在 Tomcat4.0.4 的安裝和測試
初學者入門 JAVA 的 XML 編程實例解析
初學者如何快速入門 JSP 實例分析
在 Java 應用開發中如何使用線程
在 Servlet 中如何捕獲 Session 事件
大話面向對象的前世與今生
如何進行 J2SDK 和 TOMCAT 的安裝及配置
如何在Web應用中啟動後台任務的實例講解
如何為 Java 應用程序添加退出事件的處理
如何使用 Java 程序實現 Logo 畫面的編程
實例講解如何穿越防火牆訪問 EJBs
開發中利用批處理 JDBC 語句提高處理速度
怎樣用 Java 實現 MSN Messager 的功能
怎樣用 jConfig 獲取 XML 文件中的配置信息
怎樣真正的在 Struts 框架下使用時間類型
怎樣在 Java 實例開發的過程中使用進度條
怎樣為 SWT 應用程序配備內容助理功能
怎樣使用 Java Servlet 動態生成圖片詳解
手把手教您如何編寫一個動畫 Applet 實例
揭開 Java Socket 編程中的一個秘密類
教您用 Java 做一個最簡單的 Socket 通話程序
教您純 Jsp 的自定義的單個文件上載代碼
教您在 Java 開發過程中如何應對異常處理
教您如何提高 Java 代碼性能的應用解析
教您將 Java 編譯為 EXE 的幾種簡易方法
教您快速上手使用 JDOM 處理 XML 文檔的技巧
教您怎樣在 Web 應用中動態創建 PDF 文件
教您一個壓縮歸檔的實用軟體
教你如何快速成為一名 Java 初級程序員
淺談實際開發中數據源在 JDBC 中的應用
淺析 Java 中常見的 Date 類的應用技巧
淺析 JavaBean 與 EJB 的區別與應用分析
測試對 Java 開發的重要性
深入解析 Java 的新特性 assertion
專家解答 Java 常見問題集錦 25 問
從 C++ 到 Java - 理解面向對象的關鍵所在
使用 Java 把文件/目錄壓縮成 ZIP 包最新技巧
澄清 Java 的介面與繼承機制

http://www.mywelt.net/?q=jts

F. java socket如何實現一次傳送多個文件

很簡單,復就是把多制個文件「變成」一個文件傳送就可以了,每個文件都是一個流,把這些流輸入到一個流中合並流傳輸即可,這個是基本思路。實現差不多以下兩個方法
1、直接流拼接,循環要傳輸的文件列表,多個InputStream,然後輸出到一個OutputStream,這個out就是發送數據的埠,為了接收端能夠識別每個文件從而分割流,需要每個流中結尾添加分隔符。其實這就是HTTP文件上傳的做法。
2、就比較簡單了,職業使用ZIP工具包吧需要傳輸的多文件壓縮成一個文件傳輸,接收端直接解壓縮就完事。
需要注意的是,發送多文件上傳你需要提取計算好總傳輸量位元組大小放在傳輸報文頭部告訴接收端你要發送的數據有多大,不然接收端可能無法完整接收數據。

G. 求教編程做出一個兩人多人之間簡單的聊天程序

製作人: CK.y ,匯成建築企業管理Q:610089144
僅供參考,大家要學會自己製作,很有成就感的啊!! 用 Java 作後台,開發一個 C / S 架構的多人聊天程序。首先,設計用戶界面。

一、界面設計

界面的元件全部使用 Flash CS3 自帶的組件:
首先,放入 TextInput 組件(實例名 input_txt),作為用戶輸入;
再放入 Button 組件(實例名 submit_btn),用於提交輸入的信息;
最後放入 TextArea 組件(實例名 output_txt),顯示聊天信息。

二、組件參數初始化
由於客戶端代碼不是很多,我們這次就寫在動作幀上:
// ************ 組件參數初始化 ************
submit_btn.label = "發送消息";
output_txt.editable = false;

// 設置各組件中字體的大小
input_txt.setStyle("textFormat", new TextFormat(null, 15));
output_txt.setStyle("textFormat", new TextFormat(null, 15));
submit_btn.setStyle("textFormat", new TextFormat(null, 15, null, true));

// 當按下回車或點擊 submit_btn 按鈕後調用事件處理函數
submit_btn.addEventListener(MouseEvent.CLICK, sendMessage);
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);

// 事件處理函數
function onKeyDown(evt:KeyboardEvent):void {
if (evt.keyCode == Keyboard.ENTER) {
sendMessage(null);
}
}

function sendMessage(evt:Event):void {
// 測試:將 input_txt 的內容輸出到 output_txt 中
output_txt.appendText(input_txt.text + "\n");

// 清空 input_txt,並設置焦點到 input_txt
input_txt.text = "";
stage.focus = input_txt;
}

三、編寫客戶端 Socket
1. 首先,Socket 連接非常簡單:
var socket:Socket = new Socket();
socket.connect("127.0.0.1", 8888);
其中 connect() 方法中的兩個參數分別為是主機名和埠號(埠號盡量用 1024 以上)。好了,這樣就連接上了。接下來是讀寫的問題。

2. 向伺服器端寫入字元串:我們在 sendMessage() 方法中進行寫入操作,注意寫出的字串必需以回車(\n)結束:
function sendMessage(evt:Event):void {
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(input_txt.text + "\n");
socket.writeBytes(bytes);
socket.flush();

// 清空 input_txt,並設置焦點到 input_txt
input_txt.text = "";
stage.focus = input_txt;
}

3. 讀取伺服器端寫回的字元串:最後將伺服器發回的字元串輸出到 output_txt 文本域中:
// 當客戶端 socket 收到數據後會調用 readMessage() 函數
socket.addEventListener(ProgressEvent.SOCKET_DATA, readMessage);

function readMessage(evt:ProgressEvent):void {
output_txt.appendText(socket.readUTF() + "\n");
}

四、Flash 客戶端全部腳本
// ************ 組件參數初始化 ************
submit_btn.label = "發送消息";
output_txt.editable = false;

input_txt.setStyle("textFormat", new TextFormat(null, 15));
output_txt.setStyle("textFormat", new TextFormat(null, 15));
submit_btn.setStyle("textFormat", new TextFormat(null, 15, null, true));

submit_btn.addEventListener(MouseEvent.CLICK, sendMessage);
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);

function onKeyDown(evt:KeyboardEvent):void {
if (evt.keyCode == Keyboard.ENTER) {
sendMessage(null);
}
}

function sendMessage(evt:Event):void {
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(input_txt.text + "\n");
socket.writeBytes(bytes);
socket.flush();

input_txt.text = "";
stage.focus = input_txt;
}

// ************ 客戶端 Socket ************
var socket:Socket = new Socket();
socket.connect("127.0.0.1", 8888);
socket.addEventListener(ProgressEvent.SOCKET_DATA, readMessage);

function readMessage(evt:ProgressEvent):void {
output_txt.appendText(socket.readUTF() + "\n");
}

五、編寫 Java 伺服器端 Socket
最後,我們需要編寫 Java 後台伺服器端的代碼。
首先,創建一個 ServerSocket 作為Socket 伺服器。當有客戶端連接後通過 accept() 方法即可得到客戶端的 Socket:

ServerSocket socketServer = new ServerSocket(8888);
System.out.println("伺服器已啟動,等待客戶端連接");

// accept() 方法是阻塞式的,當有客戶端連接成功後才繼續執行
Socket socket = socketServer.accept();
System.out.println("客戶端連接成功");

然後得到與客戶端的輸入流和輸出流(輸入流是客戶端連接到伺服器的管道,輸出流則是伺服器到客戶端的管道):
// 獲得輸入流和輸出流,輸入流為 BufferedReader 類型,輸出流為 DataOutputStream 類型
BufferedReader reader =
new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
DataOutputStream writer = new DataOutputStream(socket.getOutputStream());

拿到輸入輸出流以後,就可以通過輸入流(InputStream)讀取 Flash 客戶端發來的字元串,通過輸出流(OutputStream)向 Flash 客戶端寫字元串:
while (true) {
// readLine() 方法也是阻塞式的,當客戶端有消息發來就讀取,否則就一直等待
String msg = reader.readLine();

// 當客戶端發送的字元串為 null 時,說明客戶端已經關閉,此時退出循環
if (msg == null) {
System.out.println("客戶端已離開");
break;
}

// 將讀入的信息加工後再寫回客戶端
writer.writeUTF("寫回客戶端的" + msg);
}

以上是ServerSocket 與 AS 3 Socket 通信的基本原理。在實際應用中,會有多個客戶端連接這個ServerSocket,因此要創建一個多線程的 Socket 伺服器。
下面簡述一下多線程 Socket 伺服器原理:當socketServer.accept() 之後就需要實例化一個線程對象,在該對象中持有socketServer.accept() 返回的 Socket 對象,然後讓線程跑起來執行讀寫操作。如果再來一個客戶端就再跑一個線程,同樣執行讀寫操作。同時,用一個 List 容器來管理這些對象。
最終伺服器端的代碼如下:
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class FlashScoket {
private List<Client> clientList = new ArrayList<Client>();

public static void main(String[] args) {
new FlashScoket().runSocket();
}

private void runSocket() {
try {
ServerSocket socketServer = new ServerSocket(8888);
System.out.println("伺服器已啟動,等待客戶端連接");

while (true) {
// accept() 方法是阻塞式的,當有客戶端連接成功後才繼續執行
Socket socket = socketServer.accept();
System.out.println("客戶端連接成功");

// 實例化一個 Client 對象,並啟動該線程
Client client = new Client(socket);
clientList.add(client);
client.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}

class Client extends Thread {
private Socket socket;

private BufferedReader reader;
private DataOutputStream writer;

private Client(Socket socket) {
this.socket = socket;
try {
// 獲得輸入流和輸出流,輸入流為 BufferedReader 類型,輸出流為 DataOutputStream 類型
reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
writer = new DataOutputStream(socket.getOutputStream());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

@Override
public void run() {
try {
while (true) {
// readLine() 方法也是阻塞式的,當客戶端有消息發來就讀取,否則就一直等待
String msg = reader.readLine();

// 當客戶端發送的字元串為 null 時,說明客戶端已經關閉,此時退出循環
if (msg == null) {
clientList.remove(this);
System.out.println("客戶端已離開");
break;
}

// 將讀入的內容寫給每個客戶端
for (Iterator<Client> it = clientList.iterator(); it.hasNext();) {
Client client = it.next();
client.getWriter().writeUTF(msg);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 關閉 socket 及相關資源
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (socket != null) {
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

public DataOutputStream getWriter() {
return writer;
}
}
}

六、補充技術
1. 如何測試?
* 首先要編譯FlashScoket —— javac FlashScoket
* 然後啟動FlashScoket —— java FlashScoket
* 最後將 Flash 發布為 exe 文件格式,同時開啟多個即可。

2. 自動跟蹤到最後一行:當收到新的消息時自動滾動到最後一行,在 readMessage() 方法中加入:
output_txt.verticalScrollBar.scrollPosition = output_txt.verticalScrollBar.maxScrollPosition;

3. 當出現輸入/輸出錯誤並導致發送或載入操作失敗時提示用戶,加入對IO_ERROR 的偵聽:
socket.addEventListener(IOErrorEvent.IO_ERROR, socketIOError);
function socketIOError(evt:IOErrorEvent):void {
output_txt.appendText("伺服器端尚未開啟,請稍後再試\n");
}

4. 在sendMessage() 中加入對空字元串的驗證,如果為空則 return:
if (input_txt.text == "") {
return;
}

5. 在消息前面顯示用戶名:大家可以製作一個登錄頁面,輸入用戶名,假設已將輸入的用戶名存放在 userName 變數中,在寫入時加進去:
var userName:String = "FL 車在臣";
在 sendMessage() 中相應改為:
bytes.writeUTFBytes(userName + " : " + input_txt.text + "\n");

6. 使用output_txt .htmlText 輸出文字,那麼相應的寫入格式可以調整為:
bytes.writeUTFBytes("<font color='#0000FF'>" + userName + " : </font>" + input_txt.text + "\n");

H. java socket 多個客戶端連接, 怎分辨是那一位客戶端

使用IP區分

你可以這樣:ServletSocket.accept();獲取到的Socket對象
使用Map存起來,IP做Key
Map(Ip,Socket);

這樣就可以了

閱讀全文

與javasocket多個對象相關的資料

熱點內容
qq設計 瀏覽:891
紅頭文件頂格間距多少 瀏覽:696
怎麼抓防火牆上的數據包 瀏覽:686
加工編程崗位有哪些 瀏覽:961
excel的查找一列中的資料庫 瀏覽:711
女生適合做什麼編程 瀏覽:936
w10電腦自動刪除文件 瀏覽:26
用手機怎樣列印文件 瀏覽:374
國務院app上留言有什麼後果 瀏覽:159
訂餐用什麼app 瀏覽:588
手機數據線哪裡有售 瀏覽:926
中專生學少兒編程是什麼 瀏覽:197
divcss通欄代碼 瀏覽:875
win10設置區域網共享文件夾 瀏覽:875
如何顯示被隱藏的密碼錯誤 瀏覽:674
win10藍牙先點接收文件 瀏覽:971
資料庫具有較高的數據獨立性 瀏覽:720
ug圓弧面和斜面怎麼編程 瀏覽:739
公司取名網站哪個好 瀏覽:639
美國干編程有什麼條件 瀏覽:303

友情鏈接