现在用CSocket做 一个服务器
请编写一个 WINDOWS 应用程序,要求如下:1、写一个网络通讯的程序
2、提供两个参数:源地址、目标地址。参数可以动态设置。
3、源地址包括:IP地址、端口
4、目标地址包括:IP地址、端口该程序在源地址上监听,一旦接收到数据,就将数据转发给目标地址
接收的数据没有固定大小

解决方案 »

  1.   

    你发送消息的方式用TCP或者UDP取决于你对数据实时性和准确性的要求,前者严格就用UDP,否则就TCP;
    是要用一个新的socket去连接你要发送的机器的IP;
    自己电脑可以用本机IP或者127.0.0.1进行测试。
      

  2.   

    按钮创建CButton *pButton = new CButton;
    pButton -> Create(_T("共享文档"), WS_GROUP |WS_CHILD |WS_VISIBLE |BS_PUSHBUTTON,  
    CRect(10,20,60,40), &m_wndQuickList, IDC_BTN_DOCUMENT);
    你创建Button的时候,这个指定的是不是对应的???
      

  3.   

    你从那个socket接受到的数据,然后send出去就可以了,
    不需要保存状态的。
      

  4.   

    send给谁啊???都 没有连接指定IP我发给谁啊????
      

  5.   

    对啊,我说了
    是要用一个新的socket去连接你要发送的机器的IP;
      

  6.   

    一台电上能使用socket多个吗???我创建过了说不能多次创建。。
      

  7.   

    可以创建多个socket
    你怎么创建的?贴代码看看
      

  8.   

    当然 是两个socket 而不是同一个socket去创建两次
      

  9.   

    我接收到消息我就从新创建一个新的
    if (!m_pskListen->Create(inport,SOCK_STREAM,szIP))
    {
    char szMsg[256];
    sprintf(szMsg,"创建侦听失败:%d",m_pskListen->GetLastError());
    AfxMessageBox(szMsg);
    delete m_pskListen;
    m_pskListen = NULL;
    return ;
    }
    去连接这个IP
    if (!m_pskListen->Listen())
    {
    char szMsg[256];
    sprintf(szMsg,"侦听Socket失败:%d",m_pskListen->GetLastError());
    AfxMessageBox(szMsg);
    delete m_pskListen;
    m_pskListen = NULL;
    return ;
    }
    结果就弹出10048错误
      

  10.   

    你这个m_pskListen是用作接收的socket么?如果是,则在这里不能用,你需要重新定义一个这样的socket,并创建,创建之后,你应该调用其connect其连接而非调用listen
      

  11.   

    能不能在讲一下我要是在客户端也要接收消息还是利用侦听来接收!
    这个新的侦听有没有什么特别的要求?
    if (!m_pskListen_client->Create(6000,SOCK_STREAM,szIP))
    {
    char szMsg[256];
    sprintf(szMsg,"创建侦听失败:%d",m_pskListen_client->GetLastError());
    AfxMessageBox(szMsg);
    delete m_pskListen_client;
    m_pskListen_client = NULL;
    return ;
    }

    if (!m_pskListen_client->Listen())
    {
    char szMsg[256];
    sprintf(szMsg,"侦听Socket失败:%d",m_pskListen_client->GetLastError());
    AfxMessageBox(szMsg);
    delete m_pskListen_client;
    m_pskListen_client = NULL;
    return ;
    }
    这一种会提示10048
      

  12.   

    客户端接收用recv,跟listen没关系
    listen是服务器端用来监听客户端的连接的