資源簡介
VC6.0 網絡程序設計 UDP echo 結構體 傳送指針 客戶端與服務器端

代碼片段和文件信息
//客戶端
#include
#pragma?comment(lib“WS2_32.lib“)
#include
#include
#include
#define?MAX_BUF?65536?//最大接收數據
#include??
#include??
FILE?*fp;
int?main()
{
WSAData?wsadata;
int?err?=?WSAStartup(WINSOCK_VERSION&wsadata);
if(0?!=?err?)
{
return?0;
}
SOCKET?sock;
sock?=?socket(AF_INET?SOCK_DGRAM?0);
if(INVALID_SOCKET?==?sock)
{
WSACleanup();
return?-1;
}
sockaddr_in?localaddr;
localaddr.sin_family?=?AF_INET;
localaddr.sin_port?=?htons(20000);
localaddr.sin_addr.s_addr?=?inet_addr(“127.0.0.1“);
char?data[]=?“1.xv“;
int?rbyte?=?sendto(sockdatastrlen(data)0(sockaddr?*)&localaddrsizeof(localaddr));
if(SOCKET_ERROR?==?rbyte)
{
closesocket(sock);
WSACleanup();
return?-1;
}
fp=?fopen(?data?“wb+“?);
if(NULL?==?fp)
{?
printf(?“打開或創建文件失敗“?);?
fclose(fp);
}?
char?rbuf[MAX_BUF];
int?localaddrlen?=?sizeof(localaddr);
rbyte?=?1;
while(rbyte?!=?0)
{
memset(rbuf0MAX_BUF);
rbyte?=?recvfrom(sockrbufMAX_BUF0(sockaddr?*)&localaddr&localaddrlen);
if(SOCKET_ERROR?==?rbyte)
{
closesocket(sock);
WSACleanup();
return?-1;
}
printf(“%d\n“rbyte);
fwrite(rbufrbyte?1fp);
}
printf(“傳輸結束!“);
fclose(fp);
closesocket(sock);
WSACleanup();
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1318??2012-12-22?23:56??UDP文件傳輸\r_udp\udp.cpp
?????文件???????1995??2012-12-22?23:53??UDP文件傳輸\s_udp\udp.cpp
????..A.SH.???????162??2012-12-18?16:28??UDP文件傳輸\s_udp\~$1.doc
?????目錄??????????0??2013-08-24?07:48??UDP文件傳輸\r_udp
?????目錄??????????0??2013-08-24?07:48??UDP文件傳輸\s_udp
?????目錄??????????0??2013-08-24?07:48??UDP文件傳輸
-----------?---------??----------?-----??----
?????????????????3475????????????????????6
評論
共有 條評論