- 7
- 0
- 约9.04万字
- 约 88页
- 2019-07-30 发布于江西
- 举报
网络程序设计作业P93 获取计算机安装的协议
#include stdafx.h
#include WinSock2.h
#includeiostream
#pragma comment(lib,Ws2_32.lib)
using namespace std;
int main(int argc,char* argv[])
{
WSADATA sock_data;
LPWSAPROTOCOL_INFO protocol_info_ptr;
WSAStartup(MAKEWORD(2,2),sock_data);
DWORD len=0;
WSAEnumProtocols(NULL,NULL,len);
protocol_info_ptr=(LPWSAPROTOCOL_INFO) new BYTE[len+1];
int num=WSAEnumProtocols(NULL,protocol_info_ptr[0],len);
for(int i=0;inum;i++,protocol_info_ptr++)
{
cout#index=iendl
iSocketType=protocol_info_ptr-iSocketType
endl
dwServiceFlags1=protocol_info_ptr-dwServiceFlags1
endl
iAddressFamily=protocol_info_ptr-iAddressFamily
endl
iProtocol=protocol_info_ptr-iProtocol
endl
dwCatalogEntryId=protocol_info_ptr-dwCatalogEntryId
endl
dwMessageSize=protocol_info_ptr-dwMessageSize
endl
dwProviderFlags=protocol_info_ptr-dwProviderFlags
endl
iMaxSockAddr=protocol_info_ptr-iMaxSockAddr
endl
iMinSockAddr=protocol_info_ptr-iMinSockAddr
endl
iNetworkByteOrder=protocol_info_ptr-iNetworkByteOrder
endl
iProtocolMaxOffset=protocol_info_ptr-iProtocolMaxOffset
endl
iSecurityScheme=protocol_info_ptr-iSecurityScheme
endl
iVersion=protocol_info_ptr-iVersion
endl
ProtocolChain.ChainEntries=protocol_info_ptr-ProtocolChain.ChainEntries
endl
ProtocolChain.ChainLen=protocol_info_ptr-ProtocolChain.ChainLen
endl
szProtocol=protocol_info_ptr-szProtocol
endl
endl;
}
protocol_info_ptr-=num;
delete []protocol_info_ptr;
WSACleanup();
return 0;
}
P96
//服务器端代码
#include WinSock.h
#include windows.h
#include stdio.h
#pragma comment(lib,wsock32.lib)
#define RECV_PORT 2000
#define SEND_PORT 3000
#define MAX_FILESIZE 32*1024
SOCKET sock,sock1;
sockaddr_in ServerAddr;
sockaddr_in ClientAddr;
struct Filedata
{
char ffname[30];
char ffdata[MAX_FILESIZE];
int len;
}DataPacket;
int Addrlen;
DWORD StartSock()
{
WSADATA WSAData;
if(WSAStartup(MAKEWORD(2,2),WSAData)!=0)
{
printf(sock init fail!\n);
原创力文档

文档评论(0)