- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程 界面初始化
在客户端程序界面中需要用户输入服务器ip地址等信息以后才会提示用户可以连接服务器或者在用户提供所需信息以后自动连接服务器当客户端界面初始化时"连接"按钮和"发送消息"按钮均处于禁用状态如果用户需要连接服务器则必须单击"网络设置"按钮弹出"设置"设置对话框当用户填写好服务器ip地址等信息后单击OK按钮返回客户端主界面 此时“连接”按钮处于可用状态用户可以通过单击按钮连接服务器...
2019-02-27 10:49:22 197
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 界面美化编程
对与即时通信软件而言还需要美化软件的界面才能实现软件的人性化设计一个好的界面设计可以让人有良好的感觉让人喜欢一块软件好的界面设计可以让人感觉有品味,有个性让操作便简单,自由,舒适...
2019-02-26 23:03:56 134
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 接受数据 Onlistensock()函数
如果用户用异步套接字事件消息响应函数中使用自定义接收函数Myrecv()BOOL CMy12Dlg::Onlistensockt(WPARAM wParam,LPARAM lParam){//消息响应函数 char cs[100],cs1[10000],name[15]; switch(lParam) { case FD_READ: //处理读取事件 { Myrecv(s...
2019-02-25 22:11:13 289
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 接受数据 Myrecv()函数
如果用户在实际编程中经常需要反复调用函数接收数据那么应该将接收数据的功能代码封装为自定义函数这样,不仅减少了在代码中相互调用的错误还方便用户阅读代码void CMy2Dlg::Myrecv(SOCKET s,char *buff,int len,int flags){ addr.sin_family=AF_INET;//填充套接字地址结构 addr.sin_port=htons(80...
2019-02-24 20:57:50 285
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 接受数据 recv()函数
使用recv()函数进行接收数据...addr.sin_family=AF_INET;addr.sin_port=htons(80);addr.sin_addr.S_un.S_addr=inet_addr("218.6.132.5");s=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//创建套接字char recv[100]={0};//调用并...
2019-02-23 18:12:38 356
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 接受数据 recv()函数原型
用户实现自定义监听函数在该函数通过接收数据成功与否来判断端口监听是否成功说明接收数据非常重要在Windows编程中接收数据的函数是recv() 原型如下int recv ()SOCKET s,char FAR* buf,int len,int flags);函数将返回实际接收到的字节数各参数含义如下参数s表示通信的套接字句柄参数buf表示用于接收数据的缓冲区参数len表示缓...
2019-02-22 16:03:19 227
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 端口 调用自定义函数
用户通过监听原理的分析知道怎样实现客户端监听端口功能下面将调用自定义函数Listen()实现监听功能addr.sin_family=AF_INET;addr.sin_port=htons(80);addr.sin_addr.S_un.S_addr=inet_addr("218.6.132.5");s=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);...
2019-02-21 20:19:37 159
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 监听端口 定义监听函数 Listen()函数
在消息响应函数中如果接收消息成功则表示端口监听成功并将全局变量isrecv赋值为true否则监听失败并赋值为false用户在自定义监听函数Listen()中可以根据变量isrecv的值判断监听是否成功void CMy2Dlg::Listen(SOCKET s){ ::WSAAsyncSelect(s,this->m_hWnd,WM_LISTENSOCK,FD_READ); ...
2019-02-20 07:50:10 397
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 监听端口 定义监听函数 Onlistensockt()函数
响应消息是WM_LISTENSOCK消息需要自定义#define WM_LISTENSOCK WM_USER+100 //自定义响应消息在头文件"网络通信2Dlg.h"声明事件消息响应函数OnListensock1()asx_msg BOOL Onlistensockt (WPARAM wParam,LPARAM lParam);然后,将自定义消息与响应函数通过消息映射宏联系起来...
2019-02-19 08:48:31 168
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 监听端口 定义监听函数
用户为工程添加一个自定义函数作为客户端的监听函数这个函数可以由用户随意命名有一个好的命名可以方便阅读和调试代码打开工程的类视图列表工程基于对话框模式在CMy2Dlg类中添加Listen()函数添加方式是右击CMy2Dlg节点弹出快捷菜单然后,选择Add Member Funtion命令弹出 添加成员函数 对话框自定义函数相关信息函数类型函数描述voidL...
2019-02-18 23:12:43 310
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序 监听端口
在客户端中,实现监听端口的功能可以让复杂的原理封装在一个或几个功能函数中方便用户编程封装是面向对象语言的特性,封装提高了效率客户端实现监听接口功能需要依靠套接字与服务器的监听功能不一样其原理是自定义一个监听函数再将客户端的套接字设置成异步模式套接字的处理事件是FD_READ客户端的监听接口功能是一种逻辑意义上的功能并非像服务器的监听功能那样时刻检测指定端口服务器因为不实时,客...
2019-02-17 23:00:08 216
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 接收端程序
接收端也就是客户端程序客户端程序仅仅支持发送和接收数据的功能在客户端中同样具有服务器的功能例如 监听端口等功能客户端的权限是最低要不然为何要有客户端和服务端的差别...
2019-02-15 19:05:29 160
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 发送端程序 实现发送功能
用户需要将数据发送出去则需要实现发送数据的功能首先,为 发送按钮 添加消息响应函数void CMy12Dlg::OnButton1() //发送按钮消息响应函数{ char sever[100]; //声明字符数组变量 GetDlgItem(IDC_EDIT2)->GetWindowText((LPTSTR)sever,100); //获取要发送的数据 CString str...
2019-02-13 19:55:45 159
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 发送端程序 创建发送套接字
在服务器端创建发送套接字只能通过函数accept()响应客户端请求并返回相应的套接字句柄s1=::accept(s,NULL,NULL); //接受客户端的连接请求recv(s1,cs,100,NULL); //接收数据send(s1,cs,100,NULL); //发送数据发送套接字s1是函数accept()返回的新套接字对象如果s1不为NULL则用户可以在套接字s1上接收和发...
2019-02-12 18:54:59 193
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 发送端程序 创建连接套接字 Onsoc() 消息响应函数
当服务器端程序监听到客户端的连接请求以后调用自定义消息响应函数进行处理相关请求消息void CMy12Dlg::Onsoc(WPARAM wParam,LPARAM lParam)//消息响应函数{ char cs[100],cs1[10000],name[15]; switch(lParam) { case FD_ACCEPT://处理连接请求 { s1=::acce...
2019-02-10 21:41:21 164
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 发送端程序 创建连接套接字 OnInitDialog()
在服务器编程中需要用户创建两个套接字对象分别是连接套接字和数据收发套接字创建服务器连接套接字等具体实现头文件 12Dlg.h声明连接套接字对象其保护属性修改为publicclass CMy12Dlg::public CDialog{ public: CMy12Dlg(CWnd* pParent = NULL); //构造函数 SOCKET s1; //声明连接套接字对象 ....
2019-02-09 20:37:03 185
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 发送端程序控件
发送端程序服务器端可以发送信息IDS_STATIC 显示本机ip地址IDC_EDIT1 显示连接状态和收发数据IDC_EDIT2 服务器端发送的数据IDC_BUTTON1 发送按钮但凡是计算机网络 跟ip地址都有直接关系需要知道和目标ip地址的连接状态和传送的数据自己需要编辑发送的数据需要一个按钮来确定发出的数据需要最终决定在决定之前可以修改还要知道自己的决定要给谁看...
2019-02-08 21:42:02 99
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 通信原理 发送接收 服务器端
客户端设置异步模式对于服务器端而言其设置异步套接字的方法与客户端一样WSAAsyncSelect(s,this->m_hWnd,WM_SOCK,FD_ACCEPT|FD_READ);//设置异步套接字模式void CMy12Dlg::Onsoc(WPARAM wParam,LPARAM lParam)//消息响应函数{ char cs[100],cs1[10000],name[...
2019-02-06 18:34:55 174
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 通信原理 发送接收 客户端设置异步模式
现在 用户创建完套接字以后可以使用该套接字进行数据的发送和接收操作为了方便用户书写代码可以通过函数WSAAsyncSelect()将套接字设置为异步模式即有相应消息到来时才调用相应的代码将客户端设置为异步模式应该首先自定义消息然后声明消息响应函数最后设置异步套接字首先,在头文件“网络通信2Dlg.h”中调用消息WM_SOCKT#define WM_SOCKT WM_USER+...
2019-02-04 08:22:51 186
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 通信原理 通信连接 连接套接字 服务器和客户端操作
在用户在客户端界面中单击 网络设置 按钮后客户端程序将弹出设置对话框该设置 对方框 可以根据用户输入的信息连接指定的服务器默认连接端口为80如果运行该程序的机器没有连接网络则可以使用计算机的回环ip地址"127.0.0.1"当服务器监听并响应客户端的请求后在服务器界面上会显示当前连接到服务器的客户端个数服务器端显示当前连接的客户端数和客户端的ip地址等信息在操作过程中用户需...
2019-02-02 22:51:21 156
原创 Visual C++网络编程经典案例详解 第6章 网络通信器 通信原理 通信连接 连接套接字 accept()响应
当客户端调用connect()函数向服务器发出连接请求以后服务器会调用accept()函数对其进行响应并返回数据收发套接字比较简单的服务器响应客户端连接请求... //省略部分代码if(s1=::accpet(s,NULL,NULL)!=NULL) //响应客户端的连接请求{ MessageBox("客户端连接成功!"); //提示用户}else{ MessageBox("客...
2019-02-01 22:46:58 166
深入理解C# 第三版 第二章代码
2018-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人