比如,当客户端send一串字符,服务端的socket接收后,在那里可以找到这串字符呢?

解决方案 »

  1.   

    要建立InputStream,然后通过read方法来获得数据
      

  2.   

    要建立InputStream,然后通过read方法来获得数据
    import java.io.*;
      

  3.   

    自己定义一个字符数组,再定义一个wsabuf,把wsabuf的数据指针指向数组,收到的数据就在定义的那个数组里面。
      

  4.   

    是不是一定要定义一个WSABUF来接收这些字符呢?
    反过来,如果字符是从服务端发送,只要把这些字符送到WSABUF结构中的某个成员就行了吗?
      

  5.   

    是不是一定要定义一个WSABUF来接收这些字符呢?
    反过来,如果字符是从服务端发送,只要把这些字符送到WSABUF结构中的某个成员就行了吗?
      

  6.   

    完成端口只是开一个线程,具体内部的事件机制还要你自己实现,
    例如你在服务器端可以对端口采用select模型,也可以采用even模型。
    WSASelect(socket...FD_ACCEPT|FD_READ);
    当在socket中有数据需要读取的时候就会触发FD_READ事件,你在根据事件来做处理。像下面的样子
    if(nRet == FD_READ)
    {
        recv(socket,WSABuf,...);
    }
      

  7.   

    怎么还要自己来判断到底是哪个socket要收发数据呢
    是不不是用
    BOOL GetQueuedCompletionStatus(
      HANDLE CompletionPort,
      LPDWORD lpNumberOfBytes,
      PULONG_PTR lpCompletionKey,
      LPOVERLAPPED* lpOverlapped,
      DWORD dwMilliseconds
    );就可以得到接收数据了的套接字吗?
      

  8.   

    差不多,但是还要用到一个宏
    CONTAINING_RECORD()具体用法你自己再看看。
    这样就可以将具体的套接字分离出来