当然不能关闭psocket啦
连接成功后会得到一个新的socket
通过该socket才能收到数据
在关闭连接是也该关闭该socket
只有不再监听端口时才关闭psocket

解决方案 »

  1.   

    你可能没有用accept.
    你看看msdn中的csocket, programming model或Windows Sockets: Sequence of Operations就会明白的。good luck.
      

  2.   

    1.题意不清。
    2。关闭后应该再次CREATE
    我这里有个简单例子UINT Client(LPVOID S);
    class server : public CSocket
    {
    public:
    server();
    virtual ~server();
    virtual void OnAccept(int nErrorCode);
    };void server::OnAccept(int nErrorCode) 
    {
    CSocket c;
    SOCKET *s;
    this->Accept(c);
    s=new SOCKET;
    *s=c.Detach();
    ::AfxBeginThread(Client,(LPVOID)s);
    CSocket::OnAccept(nErrorCode);
    }
    UINT Client(LPVOID S)
    {
    CSocket s;
    s.Attach(*(SOCKET*)S);
    delete S;
    char buf[200];
    int r=s.Receive(buf,200);
    int w=s.Send(buf,200);
    CString str;
    str.Format("server %d ,%d",r,w);
    ::AfxMessageBox(str);
    return 0;
    }
    服务器用法
    server Server;

    Server.Create(3000));
    Server.Listen();
    客户端
    CSocket client;
    client.Create();
    client.Connect("127.0.0.1",3000);
    char buf[200];
    int r,w;
    w=client.Send(buf,200);
    r=client.Receive(buf,200);
    CString str;
    str.Format("client write %d,read %d",w,r);
    ::AfxMessageBox(str);
    client.Close();
      

  3.   

    partime:
    请问,如果我想让客户端再次连接服务器应该怎么办呢
      

  4.   

    那是客户端的socket调用
    调用connect后返回socket,数据收发操作通过返回socket进行
    服务器端accept得到新的socket
    原socket仍然处于监听状态,可以接受另一客户连接