vc网络编程

2016-02-19 16:18 21 1 收藏

今天图老师小编要向大家分享个vc网络编程教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - 编程语言 】

首先必须初始化网络,可以在app的InitInstance()中用AfxSocketInit()或者直接用
WSAStartup( MAKEWORD(1,1),&wsaData)
WORD wVersionRequested WSADATA 初始化 winsock
WSACleanUp

然后是初始化套接字的方法,有tcp和udp两种tcp下:
SOCKET(AF_INET,SOCK_STREAM,0)
bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));//同下面的代码初始化SOCKADD_IN
服务器 listen (socket s, 超时时间)
socket new=accept(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR)) 通过返回的新socket进行数据交换
send/recv(new,Buf,len,0)
inet_ntoa()把网络字节序转会主机字节序客户端

SOCKADD_IN.sin_addr.s_un.s_addr=htonl(连接的ip)
sin_family=AF_INET
sin_port=htons(6000)
connect ( socket s,(SOCKADDR*)&SOCKADD_IN,sizeof(SOCKADDR))

send/recv (new,Buf,len,0)

udp下:
SOCKET(AF_INET, SOCK_DGRAM,0)
SOCK_DGRAM

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

SOCKADD_IN.sin_addr.s_un.s_addr=htonl(INADDR_ANY)
sin_family=AF_INET
sin_port=htons(6000)

bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
recvfrom 接收(socket s,Buf,len,0,[in][out](sockaddr*),&len)
sendto 发送 [in]

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

以上的方法,需要派子线程进行循环处理,如果采用异步网络通讯,则利用消息机制处理异步网络通讯模式
s=WSASocket(AF_INET,SOCK_DGRAM,0,null,0,0)

bind(socket s,(SOCKADDR*)&addrSock,sizeof(SOCKADDR))//绑定函数没有提供更多强大的方法注册异步网络事件 WSAAsyncSelect(s ,m_hWnd,接受信息的窗口句柄UM_SOCK, FD_READ))自定义的消息事件 产生时间的原由 //现在是网络读取事件

同样地,如正常自定义消息方法
1#define UM_SOCK WM_USER+100
2在 .h中相应afx_msg void OnSock(WPARAM,LPARAM)
3.cpp ON_MESSAGE(UM_SOCK,OnSock)
4编写void OnSock(WPARAM wParam,LPARAM lParam)
{
swich(LOWORD(lParam))//低字继续保持消息内容
{
case FD_READ:
WSARecvFrom...
...
}

}

来源:https://www.tulaoshi.com/n/20160219/1611621.html

延伸阅读
随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了CAsyncSocket这样一个套接字类,用它来实现Socket编程,是非常方便的。 客户端 创建一个Dialog Based项...
Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便 得多。本文将结合作者编程经验,以VC6.0和Matcom为例,详细介绍如何利用Matcom进行VC与Matlab的联合编程。 Matcom安装安装Matcom前要已求安装VC6.0。在安装过程中出现选择编译器对话框,选择是...
浅析VC与Matlab联合编程 作者:邓科 在“浅析VC与Matlab联合编程<一”和“浅析VC与Matlab联合编程<二”中介绍了matcom,这个工具可以将用matlab写的m文件翻译成C++文件,或者是可执行文件(exe)或库文件(dll)。但是matcom在很多方面也有限制,比如,对struct等类的支持有缺陷,部分绘图语句无...
一、 制作VB数据库访问ACTIVEX DLL 1、首先使用VB6.0创建一个心得ACTIVEX DLL工程,将工程命名为prjado、将类命名为clsado。 2、为工程添加ADO对象库的引用。工程->引用:Microsoft ActiveX Data Objects2.0 Library 3、为类增加两个新的变量: Dim con As New ADODB.Connection 定义ADO会话连接对象 Dim cmd As New A...
滑动条控制(Slider Control)也叫轨道条控制,其主要是用一个带有轨道和滑标的小窗口以及窗口上的刻度,来让用户选择一个离散数据或一个连续的数值区间。通过鼠标或键盘来进行数据的选择操作,这在WIN98/95中的很多应用程序中都可以看到,如控制面板中的鼠标等,滑动条既可以是水平方式的也可以是垂直方式的。滑动条控制的风格如下: ...

经验教程

926

收藏

87
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部