📄 fun1dlg.cpp
字号:
// Fun1Dlg.cpp : implementation file
//
#include "stdafx.h"
#include "client.h"
#include "clientDoc.h"
#include "clientView.h"
#include "Fun1Dlg.h"
#include "winsock2.h"
#pragma comment (lib,"ws2_32.lib")
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFun1Dlg dialog
CFun1Dlg::CFun1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(CFun1Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFun1Dlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CFun1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFun1Dlg)
DDX_Control(pDX, IDC_FUN1_x2, m_nFun1x2);
DDX_Control(pDX, IDC_FUN1_x1, m_nFun1x1);
DDX_Control(pDX, IDC_FUN1_c, m_nFun1c);
DDX_Control(pDX, IDC_FUN1_b, m_nFun1b);
DDX_Control(pDX, IDC_FUN1_a, m_nFun1a);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFun1Dlg, CDialog)
//{{AFX_MSG_MAP(CFun1Dlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFun1Dlg message handlers
struct sendParam
{
int flag;
char a[10];
char b[10];
char c[10];
char d[10];
char m[10];
char n[10];
};
struct recvParam
{
int flag;
char x1[10];
char x2[10];
};
void CFun1Dlg::OnOK()
{
// TODO: Add extra validation here
//Socket 初始化:
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}
//定义客户端Socket:
SOCKET clienSock = socket(AF_INET,SOCK_DGRAM,0);
if(clienSock == INVALID_SOCKET)
{
MessageBox("Create socket Error");
return;
}
//获得编辑框的输入值:
m_nFun1a.GetWindowText(strFun1a);
m_nFun1b.GetWindowText(strFun1b);
m_nFun1c.GetWindowText(strFun1c);
//定义要传送到的地址结构:
sockaddr_in to_addr;
to_addr.sin_family = AF_INET;
to_addr.sin_port = htons(8341);
to_addr.sin_addr.S_un.S_addr = inet_addr(CClientView::strServer);
//给要发送的数据报付值:
sendParam p;
p.flag=1;
strcpy(p.a,strFun1a);
strcpy(p.b,strFun1b);
strcpy(p.c,strFun1c);
//定义接受和发送两个缓冲区:
char sendbuf[100];
char recvbuf[100];
//将数据报copy到发送缓冲区:
memcpy(sendbuf,&p,sizeof(p));
//获得发送地址结构的长度:
int len=sizeof(to_addr);
//发送数据:
if(SOCKET_ERROR == sendto(clienSock,sendbuf,sizeof(sendbuf),0,(sockaddr*)&to_addr,len))
{
MessageBox("Send Error");
return;
}
else
{
//接受服务器的传回值:
while(1)
{
recvfrom(clienSock,recvbuf,sizeof(recvbuf),0,(sockaddr*)&to_addr,&len);
recvParam q;
memcpy(&q,recvbuf,sizeof(q)+1);
if(q.flag<=1)
{
m_nFun1x1.SetWindowText(q.x1);
m_nFun1x2.SetWindowText(q.x2);
}
else
{
MessageBox("判别式小于零,没有实根");
}
break;
}
}
closesocket(clienSock);
WSACleanup();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -