请大家给些有关SOCKET的例子(如:TCP,UPD等),最好简单有些说明。易懂,谢谢!

解决方案 »

  1.   

    绝对权威和经典:一个TCP,一个UDP
    http://support.microsoft.com/default.aspx?scid=kb;en-us;185728
    http://support.microsoft.com/default.aspx?scid=kb;en-us;214396
      

  2.   

    对啊
    看看 《windows网络编程》其实就可以把SOCKET之上的编程了解的差不多
      

  3.   

    www.vckbase.com/code
     上面有很多的例子啊!
      

  4.   

    关于Visual C++中MFC提供的关于网络应用的类CSocket是一个比较高级的封装,使用它你可以轻松的编制出属于你自己的网络应用程序,甚至于你可以编一个属于自己的网络聊天软件。好,下面我们就来介绍一下CSocket的编程步骤:(注意我们一定要在创建MFC程序第二步的时候选上Windows Socket选项,下面我们边讲解边举了一个例子,其中ServerSocket是服务器端用到的,ClientSocket是客户端用的。)
    (1)构造CSocket对象,如下例:
    CSocket ServerSocket;
    CSocket ClientSocket;
    (2)CSocket对象的Create函数用来创建Windows Socket,Create()函数会自行调用Bind()函数将此Socket绑定到指定的地址上面。如下例:
    ServerSocket.Create(823); //服务器端需要指定一个端口号,我们用823。
    ClientSocket.Create(); //客户端不用指定端口号。
    (3)现在已经创建完基本的Socket对象了,现在我们来启动它,对于服务器端,我们需要这个Socket不停的监听是否有来自于网络上的连接请求,如下例:
    ServerSocket.Listen(5);//参数5是表示我们的待处理Socket队列中最多能有几个Socket。
    (4)对于客户端我们就要实行连接了,具体实现如下例:
    ClientSocket.Connect(CString SerAddress,Unsinged int SerPort);//其中SerAddress是服务器的IP地址,SerPort是端口号。
    (5)服务器是怎么来接受这份连接的呢?它会进一步调用Accept(ReceiveSocket)来接收它,而此时服务器端还须建立一个新的CSocket对象,用它来和客户端进行交流。如下例:
    CSocket ReceiveSocket;
    ServerSocket.Accept(ReceiveSocket);
    (6)如果想在两个程序之间接收或发送信息,MFC也提供了相应的函数。如下例:
    ServerSocket.Receive(String,Buffer); //String是你要发送的字符串,Buffer是发送字符串的缓冲区大小。
    ServerSocket.Send(String,Butter);//String是你要接收的字符串,Buffer是接收字符串的缓冲区大小。
    下面给大家举一个简单的例子。其中分为客户端和服务器端两个程序。
    客户端:
    请大家再MFC中创建如图的对话框。
     
    其中主要代码如下:
    void CClientDlg::OnButtonReceive() 
    {
      CString strAddr="202.112.73.150";
      unsigned int nPort=5050;
      if(!ChatReceive.Create())
      {
        MessageBox("create failed","Receive",MB_ICONSTOP);
        return;
      }
      else
      {
        ChatReceive.Connect(strAddr,nPort);
      } 
      char sReceive[1024];
      strAddr.Format(sReceive);
      ChatReceive.Receive(sReceive,1024,0);
      m_strEdit=sReceive;
      UpdateData(FALSE);
      ChatReceive.Close();
    }
    服务器端:
    请大家在MFC中创建如图的对话框。
     
    主要代码如下:
    void CServerDlg::OnButtonSend() 
    {
      // TODO: Add your control notification handler code here
      CString strSendText;
      unsigned int nPort=5050;
      GetDlgItemText(IDC_EDIT,strSendText);  if(!ChatSend.Create(nPort))
        MessageBox("create failed");
      else
      {
        ChatSend.Bind(nPort);
        ChatSend.Listen();
        ChatSend.Accept(server);
      }
      server.Send(strSendText,1000,0);
      server.Close();
      ChatSend.Close();
    }
      

  5.   

    用UDP协议实现广播通信:http://www.vckbase.com/vckbase/default.aspx
    用原始套接字实现网络监听:http://www.vckbase.com/vckbase/default.aspx