WinSock网络程序

这是一个WinSock网络程序的基本步骤:
建立一个聊天的例子(TCP/IP)
server:
 1初始化socket库
 WSADATA wsaData;
 WORD version = MAKEWORD(2, 0);
 int ret = WSAStartup(version, &wsaData);
 if(ret != 0)
 {
  TRACE("Initilize Error!/n");  //初始化失败
  AfxMessageBox("Failed in initial socket");
 }
 2创建套接字
  m_hSocket = socket(AF_INET, SOCK_STREAM,0);
  这里选择异步方式
  WSAAsyncSelect(m_hSocket, m_hWnd, SER_MESSAGE, FD_ACCEPT|FD_READ|FD_WRITE|FD_CLOSE)
 3绑定到本机地址
 bind(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));
 4开始侦听
 listen(m_hSocket, 5);   //这里的第二个参数表示最多支持的客户连接数
 5写消息函数
 LRESULT OnServerMessage(WPARAM wParam, LPARAM lParam)
{

 SOCKET socket,ts;
 switch(lParam)
 {
 case FD_ACCEPT:
 socket= accept(m_hSocket,NULL,NULL);
 return 0;
 case FD_READ:
 len=recv(socket,s,1024,0);
        return 0;
 case FD_WRITE:
 return 0;
 case FD_CLOSE:
 return 0;
 default:
 return 0;
 }
}
6写发送信息函数
send(socket,Buffer,GetLength(),0);


Client:
1 创建socket
m_hSocket = socket(AF_INET, SOCK_STREAM,0);
WSAAsyncSelect(m_hSocket,m_hWnd,CLI_MESSAGE,FD_READ|FD_WRITE|FD_CLOSE|FD_CONNECT)这里选择异步
2 设定服务器地址信息
3 连接服务器
  connect(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));
4 写消息函数
LRESULT OnClientMessage(WPARAM wParam, LPARAM lParam)
{
 switch(lParam)
 {
 case FD_CONNECT:
 len=GetLastError();
 if(len!=0)
 {
 AfxMessageBox("Error in Connecting");
 }
 else
 {
        m_sShowText="Having connected to server!/n";
 GetDlgItem(IDC_SHOWTEXT)->SetWindowText(m_sShowText);
 }
 return 0;
 case FD_READ:
 len=recv(m_client.m_hSocket,s,1024,0);
 return 0;
 case FD_WRITE:
 return 0;
 case FD_CLOSE:
 return 0;
 default:
 return 0;
 }
}

5 发送消息
send(m_hSocket,GetBuffer(0),GetLength(),0)


qq:275554175
email:mazhiyuan_@126.com

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值