#include
#include
#include
#include
#include
#pragma comment(lib,"ws2_32.lib")
#define max_buf 65536
using namespace std;
int main()
//建立套接字
socket s;
s=socket(af_inet,sock_dgram,0);
if(s==invalid_socket)
//定義乙個位址,並進行繫結
sockaddr_in sin;
sin.sin_family=af_inet;
sin.sin_port=htons(5000);
sin.sin_addr.s_un.s_addr=htonl(inaddr_any);
//繫結位址
int r=bind(s,(sockaddr*)&sin,sizeof(sin));
if(r==socket_error)
//接收快取區
char recvbuf[max_buf];
//初始化快取區
memset(recvbuf,0,max_buf);
//定義乙個位址結構
sockaddr_in addr;
int addrlen=sizeof(addr);
//輸入檔案的路徑
char path[100]=;
cout<<"請輸入檔案的路徑:(例如d:\\1.txt)">path;
//開啟檔案
file *fp;
fopen_s(&fp,path,"wb");
if(!fp)
else
while (true)
//接收成功
fwrite(recvbuf,1,1024,fp);
fclose(fp);
}closesocket(s);
wsacleanup();
return 0;
}
基於UDP的伺服器端和客戶端
前面的文章中我們給出了幾個tcp的例子,對於udp而言,只要能理解前面的內容,實現並非難事。udp不像tcp,無需在連線狀態下交換資料,因此基於udp的伺服器端和客戶端也無需經過連線過程。也就是說,不必呼叫 listen 和 accept 函式。udp中只有建立套接字的過程和資料交換的過程。tcp中...
6 1 基於UDP的伺服器端 客戶端
1.udp套接字原理 可靠性方面來說,tcp的確比udp好,但是udp的結構比tcp簡潔,不會傳送類似ack應答訊息,也不會有seq序號,效能有時比tcp高出很多。同時區分tcp和udp的重要標誌是流控制 tcp的生命在於流控制。圖中,ip的作用是讓離開主機b的udp資料報準確傳送到主機 但是最終交...
基於UDP的伺服器端和客戶端
前面的文章中我們給出了幾個 tcp 的例子,對於 udp 而言,只要能理解前面的內容,實現並非難事。udp 不像 tcp,無需在連線狀態下交換資料,因此基於 udp 的伺服器端和客戶端也無需經過連線過程。也就是說,不必呼叫 listen 和 accept 函式。udp 中只有建立套接字的過程和資料交...