雙機tcp同步 TCP同步與非同步

2021-10-13 15:02:32 字數 721 閱讀 9086

首先我簡單介紹一下同步tcp程式設計 與非同步tcp程式設計。

1 (1)同步:在服務端我們通常用乙個tcplistener來監聽乙個ip和埠。客戶端來乙個請求的連線,在服務端可以用同步的方式來接收,也可以用非同步的方式去接收。比如:

tcplistene server = new tcplistener(ipaddress.parse("127.0.0.1"), port);

tcpclient tc =server.accepttcpclient();

這裡就乙個同步接收的方式,那為什麼說同步呢,因為在這個埠下如果同是來了兩個客戶端請求,第乙個連線得到響應,與服務端建立通訊,而第二個請求就會被一直阻塞直到第乙個請求完成操作,各個請求之間就好像排個隊,順序執行,這就是同步。

2 (2)非同步呢,就是同時來兩個或者多個請求,服務端就同時響應多個客戶端,同時給他們連線。各個客戶端與伺服器的通訊是並行的,乙個客戶端不必等另乙個客戶端完成操作。通常用這兩個方法來接收乙個客戶端請求。

beginaccepttcpclient()

endaccepttcpclient()

3 (3)阻塞 呼叫是指呼叫結果返回之前,當前執行緒會被掛起。比如:console.readline(),如果你不向控制台輸入資料,這個方法就會一直等待,知道你輸入資料後才會向下執行。這個時候當前執行緒被掛起來了,讓cpu去做其他事情。

4 (4)非阻塞和阻塞的概念相對應,指在不能立刻得到結果之前,該函式不會阻塞當前執行緒,而會立刻返回。

TCP同步與非同步

首先我簡單介紹一下同步tcp程式設計 與非同步tcp程式設計。1 1 同步 在服務端我們通常用乙個tcplistener來監聽乙個ip和埠。客戶端來乙個請求的連線,在服務端可以用同步的方式來接收,也可以用非同步的方式去接收。比如 tcplistene server new tcplistener i...

boost asio程式設計 同步TCP

boost.asio庫是乙個跨平台的網路及底層io的c 程式設計庫,它使用現代c 手法實現了統一的非同步呼叫模型。boost.asio庫支援tcp udp icmp通訊協議。下面介紹同步tcp模式 在伺服器端,我會做個socket交給acceptor物件,讓它一直等客戶端連進來,連上以後再通過這個s...

同步與非同步

同步執行模式 所謂同步執行模式,是指語句在同步執行模式下,將始終保持對程式流的控制,直至 程式結束。如查詢操作,客戶機上的應用程式在向伺服器發出查詢操作的指令後,將 一直等待伺服器將查詢結果返回客戶機端,然後才繼續進行下一步操作。眾所周知,應用程式要從乙個大表中刪除所有的記錄將是非常耗時的,如果應用...