設計乙個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...