基于udp协议的聊天工具的设计_研究生课程论文(编辑修改稿)内容摘要:
//将接收到的数据传递给对话框。 ::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf)。 } return 0。 } 对接收到的消息进行处理,使得能够按照一定格式输出。 对于接收数据框来说 ,接收到的最新数据应该放到最顶端,以前的数据应该依次往下排列。 void CChatDlg::OnRecvData(WPARAM wParam,LPARAM lParam) { CString str=(char*)lParam。 //把 lParam转换成字符型指针,然后赋给 str。 CString strTemp。 //接收旧的数据。 GetDlgItemText(IDC_EDIT_RECV,strTemp)。 //从控件中得到文本。 str+=\r\n。 //让新的数据加 1个换行。 str+=strTemp。 //再下一行加入 先前的数据。 SetDlgItemText(IDC_EDIT_RECV,str)。 //将数据放回接收的编辑框。 } 发送函数 void CChatDlg::OnBtnSend() 12 { // TODO: Add your control notification handler code here DWORD dwIP。 //定义 DWORD类型变量,用来接收控件的 IP地址。 ((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))GetAddress(dwIP)。 //通过 GetDlgItem,得到控件的 CWnd指针,再转换类型,得到 dwIP。 SOCKADDR_IN addrTo。 //定义地址结构体变量。 =AF_INET。 =htonl(dwIP)。 =htons(5000)。 CString strSend。 GetDlgItemText(IDC_EDIT_SEND,strSend)。 /*得到编辑框的文本,传递给 strSend。 */ sendto(m_socket,strSend,()+1,0, (SOCKADDR*)amp。 addrTo,sizeof(SOCKADDR))。 //发送数据。 SetDlgItemText(IDC_EDIT_SEND,)。 /*发送完后将编辑文本框设置为空。 */ } 13 附录 在 ChatApp 类中的 IniInstance(void)函数中添加一段代码: if(!AfxSocketInit()) { AfxMessageBox(加载套接字库失败。 )。 return FALSE。 } else { AfxMessageBox(加载套接字库成功。 )。 } 以下是 中实现的代码: // : implementation file // include include include ifdef _DEBUG define new DEBUG_NEW undef THIS_FILE static char THIS_FILE[] = __FILE__。 endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg()。 // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }。 //}}AFX_DATA // ClassWizard generated virtual function overrides 14 //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }。 CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX)。 //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // No message handlers //}}AFX_MSG_MAP END_MESSAGE_MAP() /////////////。基于udp协议的聊天工具的设计_研究生课程论文(编辑修改稿)
相关推荐
第一轴,中间轴和第二轴上的两对齿轮传递,因此在变速器中间轴与第二轴之间的距离(中心距)不大的条件下,一挡仍然有较大的传动比;挡位高的齿轮采用常啮合齿轮传动,挡位低的齿轮(一挡)可以采用或不采用常啮合齿轮传动;多数传动方案中除一挡以外的其他挡位的换挡机构,均采用同步器或啮合套换 挡,少数结构的一挡也采用同步器或啮合套换挡,还有各挡同步器或啮合套多数情况下装在第二轴上。
............................................ 5 结论 ......................................................................................................................................... 13 致谢 .....
一、参数化造型技术 早期的 CAD系统是利用固定的尺寸值来定义几何元素,输入的每一条线都是确定的位置,但不包括产品图形内在的尺寸约束、拓扑约束及工程约束(如应力、性能约束等)。 因此,当要想修改实体的结构形状时,只有重新造型。 这不仅使设计人员投入相当的精力用于重复劳动,而且这种重复劳 动的结果并不能反映设计人员对产品的本质构思和意图。 而新产品的设计,不可避免地要经历多次反复的修改
......... 24 图 59 电压反馈回路 ........................................................................................................... 26 图 510 开关电源总电路图 ................................................
达 100m/min 左右。 目前世界上许多汽车厂,包括我国的上海通用汽车公司,已经采用以高速加工中心组成的生产线部分替代组合机床。 美国 CINCINNATI公司的 Hyper Mach 机床进给速度最大达 60m/min,快速为 100m/min,加速度达 2g,主轴转速已达 60 000r/min。 加工一薄壁飞机零件,只用 30min,而同样的零件在一般高 速铣床加工需 3h
define SAMPLEF 8000 define PI float InputWave()。 float FIR()。 float fHn[FIRNUMBER]={, ,, ,, ,, ,,}。 float fXn[FIRNUMBER]={ }。 float fInput,fOutput。 float fSignal1,fSignal2。 float fStepSignal1