server端雙socket 設計方式

2021-10-10 23:13:57 字數 1478 閱讀 4595

設計乙個socket server端傳輸資料,在server傳輸線程中設計兩個server socket套接字。

主要是想闡述為什麼設計兩個socket server,設計兩個socket server的目的。

乙個server端是現實和外部的建立socket 通訊連線,乙個server端實現對相應埠進行資料傳輸。

**如下:

serversocket server (m_port, m_pipefds[0]

);serversocket new_sock

(m_pipefds[0]

);int rc = server.

accept

(new_sock, pipeflag, m_client_connected)

;socket::

accept

(sock)

sock.

setupepoll

(m_pipefd)

;

在其中有兩個類,socket class 和公有繼承的serversocket class,在socket class中有著最基本的listen、accept之類的函式,

serversocket 公有繼承之後擴充套件出對epoll_event event進行註冊加入epoll監聽的功能。在其中兩種資料**,一種是socket訊息,一種是pipe訊息。

**如下:

serversocket::

serversocket

(unsigned

short port,

int pipefd)

rc = socket::

listen()

;if(pipefd >=0)

}bool socket::

accept

(socket &new_socket)

const

return

true;}

void serversocket::

setupepoll

(int pipefd)

m_efd =

epoll_create

(sizeof

(epoll_event));

struct epoll_event event;

event.data.fd = m_sock;

event.events = epollin;

epoll_ctl

(m_efd, epoll_ctl_add, m_sock,

&event)

; event.data.fd = m_pipefd;

event.events = epollin;

epoll_ctl

(m_efd, epoll_ctl_add, m_pipefd,

&event)

;}

socket 套接字(server端)

一 osi七層模型 osi定義了網路互連的七層框架 物理層 資料鏈路層 網路層 傳輸層 會話層 表示層 應用層 即iso開放互連系統參考模型。如下圖所示。每一層實現各自的功能和協議,並完成與相鄰層的介面通訊。osi的服務定義詳細說明了各層所提供的服務。某一層的服務就是該層及其下各層的一種能力,它通過...

app端和server端工作

關於aap端和server端工作 我的思路是這樣的 1 客戶端本地快取,只有沒有合適的,才去伺服器取。2 當客戶端需要某種尺寸的,由客戶端告訴服務端的尺寸,服務端動態生成並快取起來。1 在的 url末尾加上引數,宣告需要生成的的新的尺寸,例如,客戶端需要 的80 80 的尺寸,則在的路徑加上寬和高的...

Socket通訊之實現資料端跟客戶端的雙向通訊

如果需要認識socket,請前往 伺服器端 public class server02 socket.shutdowninput 將伺服器端傳送給客戶端 outputstream os socket.getoutputstream printwriter pw newprintwriter os p...