vc网络编程

心生Chang

心生Chang

2016-02-19 16:18

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

首先必须初始化网络,可以在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

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

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

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

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

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

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...
...
}

}

展开更多 50%)
分享

猜你喜欢

vc网络编程

编程语言 网络编程
vc网络编程

vc用于网络编程

编程语言 网络编程
vc用于网络编程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC++编程实现网络嗅探器

编程语言 网络编程
VC++编程实现网络嗅探器

实例解析IPv6下的VC网络编程2

编程语言 网络编程
实例解析IPv6下的VC网络编程2

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

VC常用编程经验

编程语言 网络编程
VC常用编程经验

vc开发html编程

编程语言 网络编程
vc开发html编程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用VC实现QQ2004显示IP地址的方法

用VC实现QQ2004显示IP地址的方法

PHP/MySQL三日通(7)

PHP/MySQL三日通(7)
下拉加载更多内容 ↓