凡科做网站怎么样,网站的系统建设方式有哪些方面,知名网站建设推广,建立网站需要多长钱目标
1.message的输入由edit_control进行#xff0c;需要捕获输入。 2.用户的主机地址和发送地址不一样#xff0c;需要分别设置并绑定。
设计RC外观
必备组件#xff1a;主机IP与端口#xff0c;从机IP与端口#xff0c;消息框#xff0c;发送#xff0c;连接按钮。…目标
1.message的输入由edit_control进行需要捕获输入。 2.用户的主机地址和发送地址不一样需要分别设置并绑定。
设计RC外观
必备组件主机IP与端口从机IP与端口消息框发送连接按钮。 可能的主要难点 1.UDP数据发送的字节序问题。 2.输入过程中可能使用到的16进制问题。
主机套接字
主机套接字的建立由连接按钮发生代码如下
void CMFCUDPSendDlg::OnBnClickedConnect()
{// TODO: 在此添加控件通知处理程序代码//获取变量值CString C_H_IP;CString C_H_Port;HOST_IP_E.GetWindowText(C_H_IP);HOST_PORT_E.GetWindowText(C_H_Port);//获取port的值int H_port_i _wtoi(C_H_Port);if (H_port_i 10000){if (!host_sock.Create(H_port_i, SOCK_DGRAM, C_H_IP)){MessageBox(_T(创建主机套接字失败));}else{CString str;str.Format(_T(创建主机套接字成功\nIP%ws\nPORT%d\n), C_H_IP.GetString(), H_port_i);MessageBox(str);}}else{MessageBox(_T(主机PORT不合法));}
}实现效果 需要注意的是主机套接字是你的本地接收端它的IP地址需要与你真实存在的IP与端口对应你可以去网络设置里查看自己的IP地址有哪些可用。
客机套接字与预发送数据
1.创立客机套接字的主要目的不是为了接收信息而是为了发送信息所以客机套接字本身的IP地址和端口不是很重要。 2.提供了一个预设的char数组模板后续发送数据以此模板为蓝本一个数据包不能太大。
//MSG_t接受消息结构体
typedef struct msg_t
{char type;char text[100];
} MSG_t;void CMFCUDPSendDlg::OnBnClickedSend()
{// TODO: 在此添加控件通知处理程序代码//获取变量值CString C_G_IP;CString C_G_Port;GUEST_IP_E.GetWindowText(C_G_IP);GUEST_PORT_E.GetWindowText(C_G_Port);//建立客机套接字guest_sock.Create(0, SOCK_DGRAM, NULL);//定义消息体MSG_t msg { 0 };msg.type 1;int i 0;for (i 0; i 98; i)msg.text[i] i;msg.text[99] \0;//获取port的值int G_port_i _wtoi(C_G_Port);if (G_port_i 10000){if (guest_sock.SendTo((char*)msg, sizeof(msg), G_port_i, C_G_IP, 0) ! SOCKET_ERROR){CString str;str.Format(_T(数据发送成功));MessageBox(str);}else{CString str;str.Format(_T(套接字错误码 : %d), GetLastError());MessageBox(str);}}else{MessageBox(_T(客机PORT不合法));}
}实现效果 可以看到数据按字符串顺序发送给了UDP包出去了。
消息框string转为待发送格式消息
由消息框输入UDP数据的办法有很多最好的办法是用excel表格这样的UDP数据最直观如果excel表格不行的话还可以使用CGridControl这一类扩展控件来帮忙。
笔者综合考虑了一下各种可能的数据交互方式最好的方式是用一个文件入一个文件出。不要硬刚用MFC写出excel可以直接用csv文件保存接收数据。
具体的办法往后继续说。