基于WSAAsyncSelect模型的通信程序设计讲述.doc
文本预览下载声明
集美大学计算机工程学院实验报告
课程名称:TCP/IP协议与通信程序设计 班级: 实验成绩: 实验项目名称:基于WSAAsyncSelect模型的通信程序设计 学号: 上机实践日期:2016-05-12 实验项目编号:08 组号:1 上机实践时间: 2学时
实验目的二、内容与0内所有
三、用环境 C++ 6.0
四
服务器端:
#include stdio.h
#include winsock2.h
#pragma comment(lib, WS2_32) // 链接到WS2_32.lib
#includemath.h
#define WM_SOCKET WM_USER + 101 // 自定义消息
class CInitSock
{
public:
CInitSock(BYTE minorVer = 2, BYTE majorVer = 2)
{
// 初始化WS2_32.dll
WSADATA wsaData;
WORD sockVersion = MAKEWORD(minorVer, majorVer);
if(::WSAStartup(sockVersion, wsaData) != 0)
return;
}
~CInitSock()
{
::WSACleanup();
}
};
CInitSock theSock; //加载套接字库
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
bool isprime(int p){//判断p是否为质数
int sq=(int)sqrt(p);
bool flag=true;
int i;
for(i=2;i=sq;i++){
if(p%i==0){
flag=false;
break;
}
}
if(!flagi=sq)
return false;
else
return true;
};
char * getallprime(int n){ //将num以内的所有质数放在同一字符串中
char szprime[4096] = 质数: ;
int len=strlen(szprime)+strlen(,);
for(int i=2 ; i = n ; i++ ){
if(isprime(i)){
char sznum[10];
itoa(i,sznum,10);
char * sztemp=strcat(szprime,sznum);
len+=strlen(sznum);
szprime[len-1]=,;
len+=strlen(,);
}
}
//printf(%s\n,szprime);
return szprime;
};
int main()
{
char szClassName[] = MainWClass;
WNDCLASSEX wndclass;
// 用描述主窗口的参数填充WNDCLASSEX结构
wndclass.cbSize = sizeof(wndclass);
wndclass.style = CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc = WindowProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = NULL;
wndclass.hIcon = ::LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = ::LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szClassName ;
wndclass.hIconSm = NULL;
::RegisterClassEx(wndclass);
// 创建主窗口
HWND hWnd = ::CreateWindowEx(
0,
szClassName,
,
WS_OVERLAPPEDWINDOW
显示全部