1#pragma comment(lib, "ws2_32.lib")
23 #include 4 #include 5
6using
namespace
std;78
bool
loadsocklib()918
return
true;19
}2021int
main()
2227
28 socket sock = socket(af_inet, sock_stream, 0
);29
if(invalid_socket ==sock)
3036
37sockaddr_in addrbind;
38 addrbind.sin_family =af_inet;
39 addrbind.sin_port = htons(3456
);40 addrbind.sin_addr.s_un.s_addr =inaddr_any;
4142
sockaddr_in addrclient;
4344
int iretval = 0;45
if(iretval = bind(sock, (sockaddr*)&addrbind, sizeof
(addrbind)))
4652
53 listen(sock, 5
);54
int len = sizeof
(sockaddr);
55 cout << "
伺服器已經準備好,正在等待客戶端的連線...
"<
56 socket sockclient = accept(sock, (sockaddr*)&addrclient, &len);
57 cout << inet_ntoa(addrclient.sin_addr) << "
已連線。
"<
5859
char szrecbuf[512] = ;
60char szsendbuf[512] = ;
61while(true)62
7475
return0;
76 }
1執行結果:#pragma comment(lib, "ws2_32.lib")
23 #include 4 #include 5
6using
namespace
std;78
bool
loadsocklib()918
return
true;19
}2021int
main()
2227
28 socket sock = socket(af_inet, sock_stream, 0
);29
if(invalid_socket ==sock)
3036
37sockaddr_in addr;
38 addr.sin_family =af_inet;
39 addr.sin_port = htons(3456
);40 addr.sin_addr.s_un.s_addr = inet_addr("
127.0.0.1");
4142
int iretval = 0
;43 iretval = connect(sock, (sockaddr*)&addr, sizeof
(addr));
44if(socket_error ==iretval)
4551
52char szrecbuf[512] = ;
53char szsendbuf[512] = ;
54while(true)55
67return0;
68 }
伺服器端
客戶端
雖然程式是正確的執行的了,但是其中卻還有存有許多的疑問。
1. 以前看書時,說的是,伺服器端監聽乙個固定的埠,當收到連線請求時,用accept接受請求並返回乙個新生成的套接字,該伺服器套接字繼續監聽該固定埠。於是問題來,我執行該程式,當伺服器端進行通訊時,我用netstat檢視了一下埠,發現監聽的是3456(我指定的監聽埠),其狀態為listen,然而,通訊的埠還是3456,也就是伺服器和客戶端通訊使用的埠還是3456,因為我現在乙個客戶端,所以沒問題,但是,將程式的監聽功能放在乙個單獨的執行緒中執行的話,那麼就可以同時和多個客戶端通訊,那難熬還是使用同乙個埠麼?下面是我檢視埠的截圖
未完待續。。。
實現簡單UDP伺服器客戶端模型
udp是無連線的,在資料的傳送之前不需要連線,只需要知道要發資料給誰,然後將資料發出即可,可以直接接收到其他人發來的資料,不必呼叫listen 和accept 函式。所以udp中建立好套接字後,就可以直接進行資料的傳輸。基於udp的接收和傳送函式 include include ssize t se...
客戶端 伺服器程式設計模型
客戶端和伺服器是程序,不是主機。客戶端 伺服器模型中的基本操作是事務。乙個客戶端 伺服器事務由四步組成 1.當乙個客戶端需要服務時,它向伺服器傳送乙個請求,發起乙個事務。例如,當web瀏覽器需要乙個檔案時,它就傳送乙個請求給web伺服器。2.伺服器收到請求後,解釋它,並以適當的方式操作它的資源。例如...
客戶端與伺服器模型
1.2 mysqld乙個二進位制程式,後台的守護程序 2.應用程連線mysql方式 總結 什麼是例項 圖1.1 word的開啟方式 圖1.2 mysqld的開啟方式 mysqld伺服器程式構成 mysqld是乙個守護程序但是本身不能自主啟動 root db01 mysql uroot poldboy...