clion要在cmakelists.txt加一條link_libraries(ws2_32)遇到一堆疑難雜症,順便學習一下多執行緒codeblock要link對應的檔案
效果圖:
伺服器端程式設計的步驟:
1:載入套接字型檔,建立套接字(wsastartup()/socket());
2:繫結套接字到乙個 ip 位址和乙個埠上(bind());
3:將套接字設定為監聽模式等待連線請求(listen());
4:請求到來後,接受連線請求,返回乙個新的對應於此次連線的套接字(accept());
5:用返回的套接字和客戶端進行通訊(send()/recv());
6:返回,等待另一連線請求;
7:關閉套接字,關閉載入的套接字型檔(closesocket()/wsacleanup())。
伺服器端**如下:
#include
#include
#include
#include
intmain()
if(lobyte
(wsadata.wversion)!=1
||hibyte
(wsadata.wversion)!=1
) socket socksrv =
socket
(af_inet, sock_stream,0)
; sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr =
htonl
(inaddr_any)
; addrsrv.sin_family = af_inet;
addrsrv.sin_port =
htons
(6000);
bind
(socksrv,
(sockaddr *
)&addrsrv,
sizeof
(sockaddr));
listen
(socksrv,5)
;printf
("等待客戶端連線。。。。。。\n");
sockaddr_in addrclient;
int len =
sizeof
(sockaddr)
;//void run(socket);
void
run1
(socket)
; socket sockconn =
accept
(socksrv,
(sockaddr *
)&addrclient,
&len)
;printf
("連線成功\n");
//std::thread t(run,sockconn);
std::thread t1
(run1,sockconn)
; t1.
detach()
;printf
("請輸入你想說的話:\n");
while(1
)closesocket
(sockconn);}
void
run(socket sockclient)
}void
run1
(socket sockclient)
if(recvbuf!=
null
)printf
("我收到了:%s\n"
, recvbuf)
;//memset(recvbuf,null,sizeof(recvbuf));
}}
客戶端程式設計的步驟:
1:載入套接字型檔,建立套接字(wsastartup()/socket());
2:向伺服器發出連線請求(connect());
3:和伺服器端進行通訊(send()/recv());
4:關閉套接字,關閉載入的套接字型檔(closesocket()/wsacleanup())。
客戶端的**如下:
#include
#include
#include
#include
using
namespace std;
intmain()
if(lobyte
(wsadata.wversion)!=1
||hibyte
(wsadata.wversion)!=1
) socket sockclient =
socket
(af_inet, sock_stream,0)
; sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr =
inet_addr
("127.0.0.1");
addrsrv.sin_family = af_inet;
addrsrv.sin_port =
htons
(6000);
connect
(sockclient,
(sockaddr *
)&addrsrv,
sizeof
(sockaddr));
void
run(socket)
;void
run1
(socket)
; std::thread t
(run1,sockclient)
;//std::thread t1(run,sockclient);
t.detach()
;// t1.join();
printf
("請輸入你想說的話:\n");
while
(true
)closesocket
(sockclient)
;wsacleanup()
;}void
run(socket sockclient)
}void
run1
(socket sockclient)
}
計網實驗(6 22)
rip協議 不適合規模很大的網路 ospf協議 引入區域的概念,將大的網路劃分為小的區域,只記錄區域內的資訊。有兩層 下面常規區域 上面中轉區域 router f 發訊息,交給router c 邊際路由器 再交給router b 指定程序,通常下只會指定乙個程序,多程序比較複雜,我們只做乙個程序 指...
計網實驗(6 1)
公司的領導希望連到幾個部門的資料,使用hybrid埠 收發是對於交換機來說的。access埠收報文的時候,檢測是否有pvid,如果沒有增加乙個vlantag,表明自己是vlan10 trunk口在傳送資料的時候,首先判斷pvid值是否相同,如果相同撕標籤,變成裸資料傳送 如果不同直接傳送。trunk...
計網實驗 網路層實驗
arp是位址解析協議的簡稱,實際通訊過程中需要建立ip位址和硬體位址之間的對映關係,將ip位址解析成硬體位址的協議就稱為位址解析協議。使用arp的主機都有乙個arp快取區用來儲存對映關係。在同一網段通訊時,如果arp快取中沒有目的主機的硬體位址,則源主機傳送arp請求報文,目的主機對此報文作出應答。...