[C語言] Socket程式設計簡單例子/Client+Server
一、原理
=====1.基於TCP協議的伺服器端程式流程:=======
1)建立套接字(socket)
2)繫結套接字(bind)
3)將套接字設為監聽,準備接收客戶請求(listen)
4)等待客戶請求的到來,當請求到來後,接受請求,返回一個對應於此次連線的套接字(accept)
5)用返回的套接字與客戶端進行通訊(send/recv)
6)返回,等待另一客戶請求
7)關閉套接字
====2.基於TCP協議的客戶端程式流程:=======
1)建立套接字(socket)
2)向伺服器發出連線請求(connect)
3)和伺服器端進行通訊(send/recv)
4)關閉套接字
在伺服器端呼叫accept函式時,程式就會等待客戶端呼叫connect函式發出連線請求,然後接收請求,於是雙方就建立了連線,之後,伺服器端和客戶端就可以利用send和recv函式進行通訊了。
#define StartThread(thrFun) CloseHandle(CreateThread(NULL,0,thrFun,NULL,0,NULL))
DWORD WINAPI _FuncThread(LPVOID param); //供參考的全域性執行緒函式
======3.基於UDP的伺服器端編寫======
1)建立套接字(socket)
2)繫結(bind)
3)等待接收資料(recvfrom)
4)關閉套接字
4.基於UDP的客戶端編寫
1)建立套接字(socket)
2)向伺服器傳送資料(sendto)
3)關閉套接字
在所有的套接字程式設計中第一步都是載入套接字型檔(WSAStartup)
對於每一個WSAStartup函式的成功呼叫,在最後都要對應一個WSACleanUp呼叫。
二、原始碼:
1.TCP伺服器端:
|
2.TCP客戶端:
|
3.UDP伺服器端