名义上学了C++已经1年多了,从底层API玩起到高层MFC的使用,基于Cocos2d-x游戏引擎也算是开发过几款端游和一些手游了。不过那段时间做的都是单机游戏,对于c++网络这块几乎没有接触过,今天突然有此想法,就利用一点时间玩了下socket编程,做了个建议的单向聊天demo。
先来个效果图,界面确实丑,关键看内涵~
-客户端方面的几个步骤
1.先启动WinSock
//启动WinSock
WSAData wsaData;
iErrMsg = WSAStartup(MAKEWORD(1,1),&wsaData);
2.构造socket
其中AF_INET指IPV4网络协议的套接字类型,AF_INET6是IPV6的
m_sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
3.配置数据(地址和端口)
//目标服务器数据
sockaddr_in sockaddrServer;
sockaddrServer.sin_family = AF_INET;
sockaddrServer.sin_port = port;
sockaddrServer.sin_addr.s_addr = inet_addr(address);
4.连接服务器
//连接,sock与目标服务器连接
iErrMsg = connect(m_sock,(sockaddr*)&sockaddrServer,sizeof(sockaddrServer));
-服务端:
服务端前3步和客户端一致,只是第4步需要调正为如下操作:
绑定监听操作:
//绑定
iErrorMsg = bind(m_sock,(sockaddr*)&serverAddr,sizeof(serverAddr));
-数据的发送与接收
数据的发送
//发送消息,指定sock发送消息
iErrMsg = send(m_sock,msg,len,0);
数据的接收
//接收信息
newSocket = accept(m_sock,(sockaddr*)&tcpAddr,&len);
上面就是今天做了的简单回顾,刚开始写写这些博客,简单记录下最近学的,写得有点乱,希望自己能慢慢进步。下次再结合多线程做一个类QQ的聊天小软件来玩玩,巩固下C++知识。