導航:首頁 > 配伺服器 > 一個tcp埠怎麼連接多個伺服器

一個tcp埠怎麼連接多個伺服器

發布時間:2022-06-04 03:39:44

① 一個TCP埠可被多個連接共享,為什麼

咨詢記錄 · 回答於2021-11-01

② TCP埠的問題

不是一對一關系.伺服器上某個軟體的埠是固定的.客戶機的上連接該軟體的埠是不一定

③ 怎麼用多線程實現TCP並行伺服器,服務

伺服器監聽埠 做個無限循環 接到一個連接就創建一個通道線程,並將通道線程存儲到一個list集合中

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List; /* * 4.用socket通訊寫出多個客戶端和一個伺服器端的通訊, * 要求客戶發送數據後能夠回顯相同的數據(回顯功能)(實用TCP方式)。 */public class Test4Server { // 主入口 public static void main(String[] args) throws IOException { scoketServer(); } // 開啟的tcp8888監聽埠 public static void scoketServer() throws IOException { ServerSocket server = new ServerSocket(8888); while (true) { // 未連通前線程阻塞,連通後開啟一個socket通道線程後繼續監聽8888埠 Socket socket = server.accept(); System.out.println(socket.getInetAddress().getHostAddress() + "連接進入"); new SocketThread(socket).start(); } } } // 一個伺服器埠中監聽多個客服端通道線程class SocketThread extends Thread {// 所有通道寫入流的集合 private static List<PrintWriter> list =new ArrayList<PrintWriter>(); private BufferedReader bufferedReader; private PrintWriter printWriter; public SocketThread(Socket socket) throws IOException { this.bufferedReader = new BufferedReader(new InputStreamReader(socket .getInputStream())); this.printWriter = new PrintWriter(socket.getOutputStream()); list.add(printWriter); } @Override public void run() { String string = null; while (true) { try { // 伺服器在通道中讀到的信息回顯給客服端 string = bufferedReader.readLine(); System.out.println("客服端信息:" + string); for(PrintWriter printWriter:list ){ printWriter.write("伺服器回顯:" + string + "\r\n"); printWriter.flush(); } } catch (IOException e) { } } }}

④ 如何實現tcp/ip單個用戶與單個伺服器通信以及多個用戶與單個伺服器的通信連接

同學您好,這個問題我分開解答哈!①單個用戶與單個伺服器通信採用Socket進行連接,用戶方面的流程是:1.新建套接字Socket s;2.確定伺服器IP地址和埠號 addr = 192.168.1.12 port = 8080;3.對本機地址進行顯式或隱式綁定(一般採用隱式綁定故這步可以忽略)4.開啟與伺服器的連接connect(s,addr);5.進行數據交互傳輸 send recv;6.通信結束 關閉套接字closesocket(s);

伺服器方面的流程是:1.新建套接字Socket s;2.確定本地IP和埠號(不能隱式綁定)addr = 192.168.1.12 port = 8080;3.對本地IP和埠進行綁定bind(s,addr);4.對埠進行監聽listen(s);5.接收一個連接 newsock = accept(s);6.進行數據交互傳輸 send recv;7.通信結束 關閉套接字closesocket(s)。

②單個伺服器與多個用戶的通信連接,用戶端與①中流程相同,伺服器端第5步接收了一個連接之後開始不同。伺服器在接收了一個連接之後,便新建一個套接字newsock,此時要開啟一個子線程來負責處理與該用戶機的數據傳輸,而主線程繼續監聽埠創建新的子線程來與多個用戶進行連接。C下可以採用createThread函數,

CreateThread(NULL,0,
chat,//子線程函數入口
&newsock,//傳給子線程的參數
0,&Tid);
然後在chat函數中進行recv和send即可

⑤ tcp協議中一個埠可以接受多個數據嗎

不行的!一個程序佔用一個埠號後!另外一個程序就不能佔用相同的埠號了!

閱讀全文

與一個tcp埠怎麼連接多個伺服器相關的資料

熱點內容
怎麼用qq瀏覽器整體解壓文件 瀏覽:582
肺組織壓縮15 瀏覽:267
安卓手機為什麼換電話卡沒反應 瀏覽:793
諸子集成pdf 瀏覽:336
php注冊框代碼 瀏覽:714
手機加密好還是不加好好 瀏覽:814
別克凱越壓縮機泵頭多錢 瀏覽:239
組管理命令 瀏覽:979
海南高德司機端是什麼app 瀏覽:861
pid命令 瀏覽:888
一天一圖學會python可視化 瀏覽:309
魔獸編輯文本命令串 瀏覽:497
android中view繪制 瀏覽:798
安卓機內存刪除怎麼恢復 瀏覽:331
Qt環境的編譯軟體放到linux 瀏覽:214
聯創列印系統怎麼連接伺服器 瀏覽:937
杭州行政命令 瀏覽:160
如何查找伺服器日誌 瀏覽:801
加密的鑰匙扣怎麼寫 瀏覽:579
文件夾更新不了怎麼辦 瀏覽:475